
中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。' v, }. P# x7 x: `- b # l" t" K) R$ T1 O8 b 开始还是使用CubeMx配置基本环境,如图1所示:( w* \6 h% W# e! q. k; [ ![]() 图1) R; i, u p- k' W 首先需要测试一下发送,隔1S发送一次,代码如下所示:
通过串口助手是正常的,如图2所示: ![]() 图2 增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示: ![]() 图3 找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。* c* H7 e6 E: y
2 b* E: e+ K" i, i6 F ![]() 图4) W/ P h' t" Z9 M) J! _ 中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。 |
【新品发布】STM32C0 三大子产品线齐发,精准适配价格敏感应用(文末有奖)
STM32电路知识学习
STM32C031芯片串口的Modbus特性
NUCLEO-C031C6开发板测试7——硬件SPI驱动TFT彩屏显示
NUCLEO-C031C6开发板测试6——驱动TFT彩屏显示
NUCLEO-C031C6开发板测试4——串口通讯测试
NUCLEO-C031C6开发板测试4——I2C驱动日历时钟芯片
STM32C09x和STM32C051:工业应用性价比优化的关键选择
STM32怎么选型
STM32C031芯片串口的Modbus特性