This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Starterware/TM4C1230H6PM:UART Tx 缓冲区更改值

Guru**** 1796780 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/574717/starterware-tm4c1230h6pm-uart-tx-buffer-change-value

器件型号:TM4C1230H6PM

工具/软件:Starterware

大家好,我正在使用 UART,它的工作正常,但我尝试传输一种大小为20位的数据,但 UART 仅传输16位数据,我使用了下一个 funcion,这是错误???

void SendData (char * ptr){

ROM_UARTCharPutNonBlocking (UART0_BASE、 0xFF);

while (* ptr){  
ROM_UARTCharPutNonBlocking (UART0_BASE、(unsigned char)* ptr);  

ptr = ptr + 1;  



ROM_UARTCharPutNonBlocking (UART0_BASE、 0xFB);

sum=(~sum+1)&0x0F;  
sum+=0xE0;

ROM_UARTCharPut (UART0_BASE、SUM);

ROM_UARTCharPut (UART0_BASE、 0xF0);

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Andres

    变量"sum"被分配到哪里、变量"sum"的类型是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amit,您好,感谢您的支持。

    可变和是协议的校验和,而不是我工作的,并且有任何值,可变总和包含缓冲器 Tx 的大小,不包含所有值, 当向量的大小大于16位时,最后的值不会被激发。

    协议始终以0xFF 和最后的数据0xFB、十六进制和0xF0开头,如下图所示。

    但是当我使用扩展协议时,从不传输最后的数据,就像在下一个映像中一样, 0x19是正在传输的其他数据,而不是协议中的数据使校验和和和0xF0失败。

    有什么问题?????  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Andres、

    您能否确定 UART 的 TX 范围并查看传输了哪些字符、哪些字符不是? 我看到您正在对 UART 使用阻塞和非阻塞方法。 我建议对传输操作使用阻塞方法"UARTCharPUT"。