DTU 串口通讯函数:数据发送和接收
该代码定义了三个函数,分别为 DTU_Communicate()、DTU_Start_Send_data() 和 USCI_A1_ISR()。
DTU_Communicate() 函数用于处理 DTU 的串口通讯,包括发送和接收数据。
-
发送数据:
- 函数首先将 0x55、0xFD、0xAA 作为前导字写入数据缓冲区
DTU_Tx_Data_Buffer。 - 接着,根据
DTU_Reserve_Para的值,将不同的参数写入数据缓冲区。 - 最后,计算数据长度并写入数据缓冲区,并进行校验,最后调用
DTU_Start_Send_data()函数发送数据。
- 函数首先将 0x55、0xFD、0xAA 作为前导字写入数据缓冲区
-
接收数据:
USCI_A1_ISR()函数用于处理串口中断,接收数据。- 函数首先判断是否接收到了前导字,如果接收到了,则开始接收数据长度、命令字、保留参数等信息。
- 接收完数据后,进行校验。
- 如果校验通过,则保存数据并进行相应的处理。如果校验不通过,则标记通讯错误。
DTU_Start_Send_data() 函数用于发送数据。
单片机接收到的字符串与发送的字符串相同的原因可能是:
- 发送和接收数据的格式是一致的。
- 发送和接收过程中都进行了校验,保证了数据的正确性。
因此,接收到的字符串与发送的字符串相同。
原文地址: https://www.cveoy.top/t/topic/jkQw 著作权归作者所有。请勿转载和采集!