你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请问数据传输时串口死掉有什么办法检测吗?

[复制链接]
beary 提问时间:2016-1-21 10:08 /
大家好,
我初学stm32,,现在是用两个stm32使用蓝牙芯片做数据传输,通过串口输数据,直接传输到另一个蓝牙,通过另一个蓝牙的串口显示出来,
现在在做压力测试,不过有时候跑了几天就会死掉,发送的那个就是死掉的那个,死了以后再在PC的串口工具上上输什么都不会传输过去了,直接死了

请问是不是可以用看门狗复位(请问是不是用独立看门狗?)或者有什么其他方式可以检测到串口死吗?

串口的中断回调是这样的

void USART1_IRQHandler(void)
{
  portBASE_TYPE TaskWoken = pdFALSE;
        vTaskSuspendAll();
  if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
  {
    unsigned char RxChar;
    unsigned char Event  = DEMO_EVENT_UART_RX;

    RxChar = USART_ReceiveData(USART1);
    xQueueSendFromISR(gattdQueueHandleUartRx, &RxChar, &TaskWoken);
    xQueueSendFromISR(gattdQueueHandleEvent, &Event, &TaskWoken);     /* signal event to GATTDEMO task */
        }
        xTaskResumeAll();
  portEND_SWITCHING_ISR(TaskWoken);
}




收藏 评论1 发布时间:2016-1-21 10:08

举报

1个回答
Dylan疾风闪电 回答时间:2016-1-21 10:20:25
1、对于死机的那块主控制板,往串口中断处理函数里面放一个IO的反转操作。
2、然后从控制板去捕获这个IO反转,一旦超出固定时间仍然接收不到新的反转,就视为主控制板故障了。
3、这时从控制板向PC的串口助手上发送ERROR信息。
-------------------------------------------------------------------------------
以上只是治标不治本,你关键是要找出死机的原因。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版