[求助] CC2541,BLE协议栈1.3.0版本,串口打印DHT11出现问题,如何解决?

莀荒蔚   2020-3-29 12:31 楼主

协议栈1.3.0版本,从机文件
其中
1.添加调用DHT11采集事件(SimpleBLEPeripheral.c的SimpleBLEPeripheral_ProcessEvent中的SBP_START_DEVICE_EVT事件)

 

 

 

2.定义DHT11采集事件、DHT11串口发送事件(SimpleBLEPeripheral.c的SimpleBLEPeripheral_ProcessEvent中)

 

//添加
  //周期采集DHT11温湿度事件
  if ( events & SBP_DHT11_READ_HUMITURE_EVT )
  {
    //关总中断,不关会出现0的数据
    EA = 0;     
     
    //采集DHT11温湿度
    DHT11_Read_Humiture(sbDHT11_data);
     
    //开总中断
    EA = 1;
  
    //启动定时器执行串口打印DHT11温湿度事件
    osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_DHT11_USART_EVT, SBP_DHT11_USART_EVT_PERIOD ); 
  
    //启动定时器执行周期采集DHT11温湿度事件
    osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_DHT11_READ_HUMITURE_EVT, SBP_DHT11_READ_HUMITURE_EVT_PERIOD );
     
    return (events ^ SBP_DHT11_READ_HUMITURE_EVT);    
  }  
   
  //串口打印DHT11温湿度事件
  if ( events & SBP_DHT11_USART_EVT )
  {
    uint8 nString[15] = {0};
     
    //温度
    sprintf((char *)nString, "DHT11 temp: %d.%d", sbDHT11_data[2], sbDHT11_data[3]);
    NPI_PrintString(nString); 
    NPI_PrintString("   "); 
     
    //湿度
    sprintf((char *)nString, "DHT11 humi: %d.%d", sbDHT11_data[0], sbDHT11_data[1]);
    NPI_PrintString(nString); 
    NPI_PrintString("\r\n"); 
 
    return (events ^ SBP_DHT11_USART_EVT);    
  }    
//添加 
 
   

 

结果利用串口调试助手,打印数据时,发现打印的格式不定时的混乱,如图所示。请问问题出在哪里?该怎么解决?

C# code
 
?
1
 
本帖最后由 莀荒蔚 于 2020-3-29 12:37 编辑
  • 111111111111111111111111111111.png
  • 2222222222222222222222222222.png

回复评论 (1)

专业的人才,应该很好解决的

点赞  2020-3-30 16:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复