PIC18F452 UART帧问题
各位 我用的是PIC18F452微控制器。我在UART上接收数据,通过附加额外的同步字将其帧化并传输,我在按顺序发送同步字时遇到问题。我想要的是发短信说。。。EA 09 C3包含数据。现在我有了用MikroC编写的代码:PIC18F452 UART帧问题,pic,uart,Pic,Uart,各位 我用的是PIC18F452微控制器。我在UART上接收数据,通过附加额外的同步字将其帧化并传输,我在按顺序发送同步字时遇到问题。我想要的是发短信说。。。EA 09 C3包含数据。现在我有了用MikroC编写的代码: int j=0; SPBRG = 129; TXSTA = 0b00100110; RCSTA = 0b10010000; while(1) { if(j == 0) { TXREG = 0xEA; } else if(j == 1) {
int j=0;
SPBRG = 129;
TXSTA = 0b00100110;
RCSTA = 0b10010000;
while(1)
{
if(j == 0)
{
TXREG = 0xEA;
}
else if(j == 1)
{
TXREG = 0x09;
}
else if(j == 2)
{
TXREG = 0xC3;
}
else
{
TXREG = RCREG;
}
while(!TRMT); // wait for whole data frame to be ready for transmission
if(j == 100)
j = 0; // reset j after 100 bytes
else
j++;
}
现在这里发生的是,同步字被传输,但顺序不一致,有时也会发生字节复制。
我想要的是,j应该只在传输一个字节后递增,这里我认为j的递增与传输无关
满怀期待地感谢
问候,,
哈桑uart传输的隐藏问题是: _在发送的每个字节之间加一点延迟 请注意,这是一个波特率独立的秘密;) 例如50微秒 由于发送方和接收方是异步工作的,所以它们在接收时需要花费太多的精力来同步每个字节,而您一直在填充它们。。。他们只是停滞不前。有时删除字节,有时在不清除接收寄存器的情况下删除字节,以便复制字节 所以,如果速度很关键,首先给出一个发送延迟,比如每字节50毫秒或更多,然后如果它能工作,就把它缩小到10微秒。继续缩小它,直到它再次开始失速,最好将延迟设置为故障保护限制的两倍 我希望不要匆忙或渴望速度,否则使用另一个通信通道而不是usart