记小白第一次使用UART串口,发送的数据与接收的数据对不上---使用串口通信的注意事项

记小白第一次使用UART串口,发送的数据与接收的数据对不上

第一次使用UART串口,串口的初始化和配置都没有问题了,发送函数也能够正常运行了,但是却发现自己发送的数据与使用串口助手接收到了数据不一样的问题。
我在程序中发送了data[] = {0x01, 0x02, 0x03};。但是却在串口助手中收到了:7f 4f f7 00.这些完全摸不着头脑的数据。
后面排查了串口的配置、停止位、发送的数据位、波特率,发现都没有问题。
**最终发现是自己的板子把UART串口转成了RS232,导致读出的数据不对。**后面又找了个转换器,把RS232转成了TTL,最终读取出的数据终于正确了。在此记录一下。

其他注意事项:

  • 串口通信(UART、RS232)一般需要连接4条线,分别是:VCC(电源正极)、RXD(输入)、TXD(输出)、GND(电源接地线)
  • 其中R与T要反接。即单片机的R接模块的T,单片机的T接模块的R
  • 要保证单片机的GND和模块的GND是连在一起的。也就是说串口通信的四条线可以分为能量回路(VCC和GND)、信号回路(TXD、RXD、GND),其中地线GND即属于能量回路,又属于信号回路。
  • 举个栗子:如果单片机需要3.3v的电源,模块需要12v的电源,那么模块的电源GND就要保证与单片机的电源GND连在一起,这样才能保证信号回路的流通。
  • 串口通信中,如果连接不上,多检查接口(与电脑连接时多检查usb接口,多拔插几次,或者换个接口试试)
  • TTL与RS232使用的电平标准不同。TTL供电电平为5v(或者3.3v),逻辑0的电平是低于2v(典型值为0.8v),逻辑1的电平是3.5v-5之间;RS232中逻辑1的电平为-3v到-15v之间,逻辑0的电平为+3v到+15v之间。
  • 检查自己连接到的引脚是否就是芯片对应的串口的引脚。

你可能感兴趣的:(单片机,嵌入式硬件)