问题:单步运行的结果 都是对的 (帧头和发送的数据) 但是全部运行 都是 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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
while(USART_GetFlagStatus(UART_PORT, USART_FLAG_TXE) == RESET){};
一周热门 更多>