问题:单步运行的结果 都是对的 (帧头和发送的数据) 但是全部运行 都是 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){};
谢谢你了
void usart1_send_char(uint16_t c)//(char c) //U8
{
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
USART_SendData(USART1,c);
} 前几天加了这个 串口显示就正常了 正常显示波形。
但是 变量 的波形只能显示正值 不能显示负值,(如果是常数-100 波形就可以正常显示负的波形)
请问一下 这个情况属于什么错误?
一周热门 更多>