ZHT · 2022年05月06日

【GD32F310开发板试用】串口的一些特殊功能

串口主要用于通信和调试信息输出,今天仔细观察GDF310的数据手册发现一些特殊功能:1、自动波特率检测;2、数据发送/接受,高位在前/后;3、数据位反转;4、TX/RX管脚交换。
针对以上的5个特殊小功能,进行测试下。
一、自动波特率检测
关键代码:

 usart_autobaud_detection_enable(com);
 usart_autobaud_detection_mode_config(com,USART_ABDM_FTOR);
 //usart_baudrate_set(com, bound);

修改完成后,连接串口工具,选择任意波特率,发送信息,回显正常,如图:
AutoDetect1.png
自动检测波特率,需要复位之后,重新选择波特率,发送信息,回显正常,如图:
AutoDetect2.png
二、数据发送/接受,高位在前/后
前提:默认情况下,低位在前是标准模式,所以串口工具都是已低位在前进行发送数据的。
2.1 单片机串口发送/接受为高位在前:
关键代码,配置串口为高位在前:

usart_data_first_config(com,USART_MSBF_MSB);

串口发送信息界面:
MSB.png
串口工具发送的数据位“11111”,转换为十六进制为0x310x310x310x310x31 ,发送到单片机数据如图:
serialFfaSong.png
单片机接受到数据之后,进行转发给上位机,如图:
mcufasong.png
2.2 单片机串口发送/接受为低位在前:
关键代码,配置串口为低位在前:

usart_data_first_config(com,USART_MSBF_LSB);

串口发送信息界面:
LSB.png
串口工具发送的数据位“11111”,转换为十六进制为0x310x310x310x310x31 ,发送到单片机数据如图:
lserialFfaSong.png
单片机接受到数据之后,进行转发给上位机,如图:
lmcufasong.png
三、数据位反转
单片机发送“1111”(默认情况下,单片机发送、接受低位在前),数据位未反转时:
datanoinv.png
单片机发送“1111”(默认情况下,单片机发送、接受低位在前),数据位发生反转时:
datainv.png
四、TX/RX管脚交换。
TX/RX引脚未交换时,PA9为TX,PA10为RX:
TX_RX.png
手动交换TX/RX引脚,即PA9为Rx,PA10为Tx:
Rx_Tx.png
以上是观看USART发现GD32F310具有的特点,除此之外,USART还具有LIN模式、串行红外、智能卡和ModeBus通信的功能。

推荐阅读
关注数
10694
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息