TI中文支持网
TI专业的中文技术问题搜集分享网站

串口通信数据发送读取以及仿真问题

在串口通信问题中,数据的接收总感觉有问题,仿真时候也会出现如图所示的问题,这个应该怎么解决?

数据接收与传送在中断中进行

void UART0IntHandler(void)
{
uint32_t ui32Status = 0;

//获取中断状态
ui32Status = UARTIntStatus(UART0_BASE, true);

//清除中断标志
ROM_UARTIntClear(UART0_BASE, ui32Status);

RxData[UartTxLen++]=UARTCharGet(UART0_BASE);

if(UartTxLen==9)
{
UartTxLen=0;
for(UartTxIndex=0;UartTxIndex<9;UartTxIndex++)
{
UARTCharPutNonBlocking(UART0_BASE,RxData[UartTxIndex]);
RxData[UartTxIndex]=0;
}
UARTprintf("\nOK\n");
}
}

上位机发出的数据为abcdefg  而仿真接收的数据为

而整个程序正常跑起来,上位机看到的数据为

感觉到数据有规律的错位了,不知道是不是读取串口数据有问题,还是串口通信没有调好?

xyz549040622:

if(UartTxLen==9)

你为什么判断是9呢,你发的是7位呀。。。你一直收到的是abcdefg的循环,正常呀,因为你循环发送,发的是7位,收到的是9位

JiWei Su:

回复 xyz549040622:

哦哦!数据输入错了,但是输入九个数还是有一样的问题,比如发123456789结果如下图

Michael Sun:

回复 JiWei Su:

第一个错误是因为引用的库函数,没有源码,这个无所谓的。

这个错位看起来是FIFO使用不当引起的,你先试试发送8个或者6个字节试试

JiWei Su:

回复 Michael Sun:

库函数没有源码?FIFO的操作需要特殊配置吗?这些会影响大量数据的传输吗?FIFO的操作有没有例程可以参考一下啊!

赞(0)
未经允许不得转载:TI中文支持网 » 串口通信数据发送读取以及仿真问题
分享到: 更多 (0)