初级会员

- 积分
- 175
- 金钱
- 175
- 注册时间
- 2018-8-8
- 在线时间
- 47 小时
|
1金钱
问题:单步运行的结果 都是对的 (帧头和发送的数据) 但是全部运行 都是 108 这是怎么回事呢?
主函数部分代码
while(1)
{
push(1,111); //通道1发送的数据
push(2,112); //通道2发送的数据
sendDataToScope();
//produceScopeData();
下面是校验的代码
轮询法发送一帧数据
消耗时间与数据长度有关
不可以放在中断里面周期性调用
消耗时间计算看帮助文档
*/
void sendDataToScope(void)
{
u8 i,sum=0;
//使用轮询的方式发送数据,当数据未发送,程序停在此处直到发送完成
USART_SendData(UART_PORT,251); // //USART_SendData 串口接受到一个字节 USART_SendData
USART_SendData(UART_PORT,109);
USART_SendData(UART_PORT,37);
sum+=(251); //全部数据加入校验
sum+=(109);
sum+=(37);
for(i=0;i<FreeCarsDataNum;i++) //34
{
USART_SendData(UART_PORT,uSendBuf[i]);
sum+=uSendBuf[i]; //全部数据加入校验
}
USART_SendData(UART_PORT,sum);
}
|
最佳答案
查看完整内容[请看2#楼]
USART_SendData(UART_PORT,sum);
while(USART_GetFlagStatus(UART_PORT, USART_FLAG_TXE) == RESET){};
|