STM32Cube生成串口初始化代码

2025-04-24 17:35:14

关于STM32Cube的各种好处俺就不多说了,了解它的自然明皈寿凿几白,不了解的上ST官网查查就一目了然了。在这里俺就以STM32F429为例,简单介绍些它的串口初始化代码的生成方法,顺便给邗锒凳审个简单的测试代码和运行结果。

工具/原料

PC一台

STM32Cube软件

Keil

生成初始化代码

1、第一步:打开你的STM32Cube软件,一般是在“开始”的STMicroelectronics目录下,如图所示。

STM32Cube生成串口初始化代码

2、第二步:进入STM32Cube主界面,点击New Project,开始新建工程。

STM32Cube生成串口初始化代码

3、第三步:这一步的界面内容比较多,初看上去有点让人摸不着头脑。那么请忽略其它无关项,这里你需要关注的只有两个地方,一个是最下面的MCU List,这里是可以选择的单片机型号,在这里找到你需要的型号即可,确认无误后点击它右上方的“Start Project”按钮开始工程。

STM32Cube生成串口初始化代码

4、第四步:进入工程,开始选择需要初始化的内容,这里先选择Pinout,选择你需要的管脚,左侧的列表就是可供选择的外设,右侧是单片机的引脚图。

STM32Cube生成串口初始化代码

5、第五步:配置时钟,时钟始终是单片机一个重要的内容,不管是什么应用都少不了,这里在左侧列表中选择RCC,点击它前面的+号打开,按你的需求进行配置,我这里选择了高速和低速时钟。

6、第六步:配置串口端口,因为我只有USART3引脚可用,所以就选择它了,Mode选择异步模式。

STM32Cube生成串口初始化代码

7、第七步:切换到“Configuration”,如图,其中的“Middlewares”就是可议矣把噌供配置的相关模块,其中打勾的就是已经配置过的,这里DMA是个+号,那么还需要进一步配置。其实也可以不配置它,但因为STM32Cube使用了HAL库,HAL库喜欢用DMA+USART的方式,所以还是配置吧。

STM32Cube生成串口初始化代码

8、第八步:配置DMA,点击DMA按钮,开始配置DMA。如图,点击“Add”按钮,新建一个配置。

STM32Cube生成串口初始化代码
STM32Cube生成串口初始化代码

9、第九步:双击DMA Request下面的内容,按图中的内容配置好DMA各参数,确认好后,先点击“apply”再点击“Ok”按钮。

STM32Cube生成串口初始化代码
STM32Cube生成串口初始化代码

10、第十步:DMA配置成功后DMA按钮有+号变成了勾勾。接下来可以选择USART3对串口具体参数进行配置。

STM32Cube生成串口初始化代码

11、第十一步:如图所示,根据文字提示可以很快地配置好串口的具体参数。确认后先点击“Apply”,再点击“Ok”键确认好配置。

STM32Cube生成串口初始化代码
STM32Cube生成串口初始化代码

12、第十二步:点击Project ->Generate Code或者点击快捷键Ctrl+Shift+G开始生成代码。

STM32Cube生成串口初始化代码

13、第十三步:如图,按图中提示配置好相关参数,这里请注意你使用的编译环境,我用的是Keil5,那么Toochain/IDE便选择了MDK-ARM V5。确认后点击OK即可。

STM32Cube生成串口初始化代码
STM32Cube生成串口初始化代码

14、第十三步:没有异常的话,软件会弹出一个滚动条对话框,待滚动条满后代码生成便成功了。

STM32Cube生成串口初始化代码

测试生成的代码

1、第一步:代码生成成功后会弹出一个对话框,如果不想太麻烦那么可以直接点击Open Project,STM32Cube便会自动打开对应的编译环境。

STM32Cube生成串口初始化代码

2、第二步:打开main.c,在其中添加如下定义:uint8_t tx_buf[512] = 争犸禀淫"This is a STM32Cube Project";ui荏鱿胫协nt16_t txBufSize = 512;void DelayCnt(uint32_t cnt){ while(cnt){cnt --;}}其中tx_buf是发送缓存,DelayCnt用于简单的阻塞延时。

STM32Cube生成串口初始化代码

3、第三步:切换到main函数的while(1)循环,添加下述代码: HAL_UART_Transmit(&huart3, tx_buf, txBufSize, 5000); DelayCnt(1000000);其中HAL_UART_Transmit便是串口发送函数,将tx_buf的txBufSize长度发送出去,其中huart3为STM32Cube自动生成的,且已经进行了初始化,直接使用即可。

STM32Cube生成串口初始化代码

4、第四步:编译工程,因为使用了HAL库,所以需要的时间比较长。

STM32Cube生成串口初始化代码

5、第五步:将生成的代码烧录到芯片当众,运行效果如图。因为没有加换行符,所以字符都挤到一块了。

STM32Cube生成串口初始化代码
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢