该代码定义了三个函数,分别为 DTU_Communicate()DTU_Start_Send_data()USCI_A1_ISR()

DTU_Communicate() 函数用于处理 DTU 的串口通讯,包括发送和接收数据。

  1. 发送数据:

    • 函数首先将 0x55、0xFD、0xAA 作为前导字写入数据缓冲区 DTU_Tx_Data_Buffer
    • 接着,根据 DTU_Reserve_Para 的值,将不同的参数写入数据缓冲区。
    • 最后,计算数据长度并写入数据缓冲区,并进行校验,最后调用 DTU_Start_Send_data() 函数发送数据。
  2. 接收数据:

    • USCI_A1_ISR() 函数用于处理串口中断,接收数据。
    • 函数首先判断是否接收到了前导字,如果接收到了,则开始接收数据长度、命令字、保留参数等信息。
    • 接收完数据后,进行校验。
    • 如果校验通过,则保存数据并进行相应的处理。如果校验不通过,则标记通讯错误。

DTU_Start_Send_data() 函数用于发送数据。

单片机接收到的字符串与发送的字符串相同的原因可能是:

  • 发送和接收数据的格式是一致的。
  • 发送和接收过程中都进行了校验,保证了数据的正确性。

因此,接收到的字符串与发送的字符串相同。

DTU 串口通讯函数:数据发送和接收

原文地址: https://www.cveoy.top/t/topic/jkQw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录