[MCU] 【AT-START-F403A测评】之二freeRTOS系统IAR环境时钟配置及串口DMA实现完全pri...

uuxz99   2020-10-3 20:36 楼主

AT-START-F403A测评】之二freeRTOS系统基于IAR环境时钟配置及串口DMA实现完全printf功能

通过上一次测评,仅实现了简单任务切换,任务中断机制尚未实现。本次评估实现了任务中断切换等功能。通过使用DMA及其中断机制实现完整printf功能,为了获得优良的DMA性能,先看一下时钟系统的配置。

时钟配置:

  1. 项目中Startup目录下system_at32f4xx.c可以实现系统时钟的配置,当然,也可以在运行时调整。评测按照最高时钟设置。

image.png

  1. 为了便于观察配置结果,设置一个RCC_ClockType 类型全局变量systemClock,在main启动中,可以通过RCC_GetClocksFreq(&systemClock)获得系统时钟的配置情况。
  2. 启动调试断点停下后,在watch中观察变量systemClock

image.png

  1. 确认时钟配置

在datasheet的RCC的CFG寄存器描述时钟输出如下,寄存器与描述实际是一致,目前配置为外部8MHz时钟为PLL时钟源,PLL时钟作为系统时钟输出240MHz。需要注意的是,如果不修改上述配置,默认是系统时钟及APB等均为8MHz。

image.png

 

image.png

完全printf功能实现:

  1. 通过uart以DMA方式发送打印字符实现测评,基于上一篇评测(《at-start-f403a测评之一--freeRTOS系统搭建》)的三个任务,增加串口DMA打印功能,评测中命名为console功能。
  2. 实现串口DMA打印,驱动分别对gpio,串口和DMA设备的初始化。
    1. 串口gpio设备初始化

image.png

    1. 串口设备初始化

image.png

 

image.png

    1. dma设备初始化

  允许RCC及DMA中断配置。

image.png

image.png

    1. console功能初始化

image.png

    1. DMA发送

image.png

    1. console功能实现

在原有三个点灯任务中加入console功能实现

image.png

    1. 功能结果示例

image.png

image.png

本帖最后由 uuxz99 于 2020-10-3 21:08 编辑

回复评论 (1)

雅特力AT-START-F403A测评汇总

https://bbs.eeworld.com.cn/thread-1143018-1-1.html

玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2020-10-9 15:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复