串口主要用于通信和调试信息输出,今天仔细观察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);
修改完成后,连接串口工具,选择任意波特率,发送信息,回显正常,如图:
自动检测波特率,需要复位之后,重新选择波特率,发送信息,回显正常,如图:
二、数据发送/接受,高位在前/后
前提:默认情况下,低位在前是标准模式,所以串口工具都是已低位在前进行发送数据的。
2.1 单片机串口发送/接受为高位在前:
关键代码,配置串口为高位在前:
usart_data_first_config(com,USART_MSBF_MSB);
串口发送信息界面:
串口工具发送的数据位“11111”,转换为十六进制为0x310x310x310x310x31 ,发送到单片机数据如图:
单片机接受到数据之后,进行转发给上位机,如图:
2.2 单片机串口发送/接受为低位在前:
关键代码,配置串口为低位在前:
usart_data_first_config(com,USART_MSBF_LSB);
串口发送信息界面:
串口工具发送的数据位“11111”,转换为十六进制为0x310x310x310x310x31 ,发送到单片机数据如图:
单片机接受到数据之后,进行转发给上位机,如图:
三、数据位反转
单片机发送“1111”(默认情况下,单片机发送、接受低位在前),数据位未反转时:
单片机发送“1111”(默认情况下,单片机发送、接受低位在前),数据位发生反转时:
四、TX/RX管脚交换。
TX/RX引脚未交换时,PA9为TX,PA10为RX:
手动交换TX/RX引脚,即PA9为Rx,PA10为Tx:
以上是观看USART发现GD32F310具有的特点,除此之外,USART还具有LIN模式、串行红外、智能卡和ModeBus通信的功能。