1:支持RXD和TXD管脚互换
在外接RS232芯片将RXD和TXD两根线接反,如果大家知道USART的TXD和RXD管脚可以互换,那么在连接外设RS232芯片时,如果发生错误,就不必再修改硬件,只需直接在软件中将RXD和TXD的管脚反转过来即可修正错误。
2:支持接收和发送的电平极性反转
接收和发送的电平极性是可以反转的。通常默认串口电平是高电平为逻辑1,低电平为逻辑0;而在ST的USART中是可以将高电平设置为逻辑0,低电平设置为逻辑1的。这一特性,让我们在一些特殊的场景下灵活使用,举个栗子,USART外接了反相器时就可以直接使用。
在数据接收发送寄存器中,数据也是可以反转的,原来的0变为1,原来的1变为0,这和电平极性反转是类似。需要特别注意的是,在极性反转的时候,起始位和结束位也都反转了,所有的信号电平都反转;而在数据寄存器中只反转了数据位,其中也包含了校验位,没有反转信号的起始位和结束位的极性。
3:支持数据高位与低位反序发送或接收
发送和接收数据时,可在寄存器中设置是先发低位还是先发高位。默认的配置都是先发送或接收低位的信号(bit 0),实际应用中,通过USART_CR2中的MSBFIRST设置后,也可以让USART先发送或接收高位信号(bit 7/8),这一点在对数据进行反序的时候会经常用到它。
我们可以考虑这种情况,如果需要把串口接收到的数据先进行反序操作之后,再进行计算,那这个硬件的功能就可以帮助我们节省很多软件的工作量。