stm32407移植上位机协议(飞思卡尔上位机)

2019-07-20 06:07发布

问题:单步运行的结果 都是对的  (帧头和发送的数据)   但是全部运行 都是 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);
}





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
HCHDaLeiGe
1楼-- · 2019-07-20 10:24
USART_SendData(UART_PORT,sum);
while(USART_GetFlagStatus(UART_PORT, USART_FLAG_TXE) == RESET){};
正点原子
2楼-- · 2019-07-20 14:27
USART_SendData里面有等待串口发送完成么?没有的话,就要加上!
cercatrova
3楼-- · 2019-07-20 20:04
 精彩回答 2  元偷偷看……
cercatrova
4楼-- · 2019-07-20 21:08
正点原子 发表于 2018-9-10 01:48
USART_SendData里面有等待串口发送完成么?没有的话,就要加上!

谢谢你了  
void usart1_send_char(uint16_t c)//(char c)  //U8
{

while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
            USART_SendData(USART1,c);   

}   前几天加了这个   串口显示就正常了   正常显示波形。
但是 变量 的波形只能显示正值 不能显示负值,(如果是常数-100   波形就可以正常显示负的波形)
请问一下  这个情况属于什么错误?
cercatrova
5楼-- · 2019-07-21 00:41
 精彩回答 2  元偷偷看……

一周热门 更多>