KST-STM32学习之USART
【摘要】
1、STM32F103ZE 单片机内部集成有 3(USART)+2(UART)个串行通信接口。
2、相应的串行通信接口对应的管脚。
3、注意了,USART和UART是不一样的!
USART - 既...
1、STM32F103ZE
单片机内部集成有 3(USART)+2(UART)
个串行通信接口。
2、相应的串行通信接口对应的管脚。
3、注意了,USART和UART是不一样的!
USART
- 既能实现同步通信,又可以异步通信。
UART
- 只能实现异步通信。
4、几个标志位的认识
发送数据寄存器的数据传送到移位寄存器后,发送数据寄存器(TDR
)就空了,这个时候硬件会将TXE
置位。向TDR中写数据会自动清除TXE
当TXE
置位,并且没有数据再写入TDR
,这个时候硬件会将发送完成标志位(TC
)置位。我们实际中发送完成与否用TXE。
同时还可通过TXEIE
或者TCIE
设置相应的中断使能,从而进入相应的中断服务函数!
注:USART
发送功能(TE
)置位后,将发送一个空闲帧(0xFF
),如果此时没有数据发送,TXE
标志位和TC
标志位会一直处于置位状态,且如果此时是能了TXEIE
或者TCIE
,将不断的重复执行串口中断服务函数。
由于 TDR
寄存器一旦为空,TXE
标志位会硬件置位,进而触发中断,所以当不发送数据时要及时关闭发送中断。
5、关于接受数据
相比于发送数据,接受数据似乎更简单了点。
接受完毕后,硬件设置接收数据寄存器非空标志位(RXNE
),当去读数据,这个标志位会自动清除,当然也可以手动清除。
6、关于引脚配置
TXD
引脚配置为复用推挽输出模式
RXD
引脚配置为浮空输入模式
7、配置流程总结
-
使能
USART
时钟及配置相关引脚- 注意看对应USART在那个总线上,并且相应引脚应该是什么模式
-
USART 外设初始化参数设置
- 波特率,数据位等,使能发送和接收功能,
××_Init
进行初始化。一旦使能发送功能,便会开始发送空闲帧。
- 波特率,数据位等,使能发送和接收功能,
-
串口中断优先级
-
使能
USART
中断- 注意在此只使能串口接收中断,发送中断必须在发送前使能,发送完毕后关闭,否则程序会重复执行中断服务函数。
-
使能 USART 外设
-
编写 USART 中断服务函数
文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。
原文链接:recclay.blog.csdn.net/article/details/81259577
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)