杂类-边学边记

 

软件记录

1. makefile内,使用-I去包含一个含有多层次的子文件夹的场景,需要如何处理?

 

硬件记录

1. 2021年调试梯联遇到的问题

我那些电路板,不插串口,程序跑起来38秒后去读lan8720网卡信息后,main函数内的toggle led都没效果了,表现为死机现象。

插着CH340串口模块,能一直好好工作。手指放在电路板串口附近,竟然也能进行局域网调试。 

很奇怪!匪夷所思。

参考博文:

USART RX 不上拉的后果

这两天写一个STM32的程序,其中USART1是要接一个串口屏做显示的,调试前期是还没用到显屏,就拿USART1做log打印。然后就发现了一个很怪异的现象。
USART1串口转usb接到电脑,程序运行稳定,没有异常。
USART1串口转usb不接到电脑,程序异常,容易跑飞HardFault_Handler。

后来把USART1的RX IO初始化改了下,就好了。
原本是

    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL; 
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 
1
2
3
4
后面是

    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 
1
2
3
4
原因分析,是因为RX不上拉,悬空的话,电路的某些信号影响(比如射频,大功率器件),就容易误触发,进入接收中断。改成上拉就可以解决。
而当USART1 串口转usb接到电脑的时候,RX也不再是悬空状态,也不容易误触发接收中断,所以才造成上述说的情况。
————————————————
版权声明:本文为CSDN博主「小康师兄」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kangweijian/article/details/78720302

 

UART的RX引脚被干扰,为何为导致死机?

原因应该是msh导致的,调试串口RX引脚被干扰,导致一直有数据输入,msh线程奔溃,进而导致整个RTOS奔溃,表现形式就是死机。

 

2.

 

posted @ 2021-10-20 15:16  一匹夫  阅读(68)  评论(0编辑  收藏  举报