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);
}





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。