基于STM32CubeMX——HAL库开发的串口通讯(DMA模式)

本文介绍了如何使用STM32CubeMX配置STM32F103R6Tx芯片进行串口通信,特别是利用DMA模式进行数据传输。详细步骤包括设置SYS调试模式、RCC时钟源、USART1异步通讯和DMA接收模式。同时,文章提到了关键的HAL库函数,如串口轮询和中断模式的发送与接收,以及DMA的暂停、恢复和停止操作。为了实现printf与scanf功能,还需要在stm32f1xx_hal.c文件中重写fget和fput函数,并在主函数中启动DMA接收并处理接收完成后的操作。
摘要由CSDN通过智能技术生成

STM32CubeMX配置

首先打开STM32CubeMX选择你开发的芯片型号,这里我选择的是F103R6Tx的芯片。然后第一步选择SYS里面的debug模式,如果用HAL库不进行SWD或JTAG配置,单片机只能进行下载一次程序,要进行第二次或更多次程序下载,需要按复位键(如果你的单片机有复位按键的话),或者用镊子夹住复位线路上的电容使其短路,点击Keil下载,再松开镊子。

在这里插入图片描述然后RCC时钟源选择外部高速时钟,自接外部晶振
在这里插入图片描述然后配置时钟树
在这里插入图片描述然后打开USART1选择异步通讯模式
在这里插入图片描述打开DMA添加,注意RX的DMA传输模式选择为循环模式circular,不然只会接受一次。
在这里插入图片描述如果用DMA方式发送,则需要使能USART1的中断,注意:如果不开启串口中断,则程序只能发送一次数据,程序不能判断DMA传输是否完成,USART一直处于busy状态
在这里插入图片描述这里注意选择环境,且路径不要出现中文名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值