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

【STM32C031评测】2.USART通讯(发送与中断接收)

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。' v, }. P# x7 x: `- b
# l" t" K) R$ T1 O8 b
      开始还是使用CubeMx配置基本环境,如图1所示:( w* \6 h% W# e! q. k; [
2-1.JPG
& }4 F$ o1 m5 U, U/ E图1) R; i, u  p- k' W

* G! L+ k4 e) l/ @9 u2 D3 N首先需要测试一下发送,隔1S发送一次,代码如下所示:
2 K1 u* F7 _3 x9 Q3 R
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);1 T, ]' l4 b8 ?! s
  2.                 HAL_Delay (1000);
复制代码
* `% U& M5 D  a1 d9 x! Y& ~

. W- d& o6 G0 a, O* s通过串口助手是正常的,如图2所示:
0 t& t% r( N9 i1 c2 N 2-2.JPG $ ]5 [+ d8 G* O( T5 Z7 e% g2 m2 G
图2
1 b( [  \/ k) c9 Z" {$ J4 w
% y" [' ]/ o/ ?2 I增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:
7 N* I8 Y7 n9 y# G# w2 w- e C0Debug错误2-3.JPG
2 i; n2 q' j, z2 o& B图3
- J. A* a* O3 y) ?) p' D( |
7 D1 ?5 L$ B5 K3 b找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。* c* H7 e6 E: y
  1. if (huart->RxISR != NULL)* z$ o' o7 i" }- D5 V
  2.       {6 Y6 ^1 X+ T, [+ U2 n% y( ~& `
  3.         UART_RxISR_8BIT(huart);0 s1 n, O+ q- Q2 g9 Q0 b
  4.       }" b8 f$ d  E2 [4 }* _/ s: I! K
  5.       return;
复制代码
1 P% r9 @& f0 b. x7 B1 r7 R: z
2 b* E: e+ K" i, i6 F
2-4.JPG
6 C# f5 N9 N" Q图4) W/ P  h' t" Z9 M) J! _

$ g, x3 p( g! d0 r中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。
% L$ f$ p( S' D# f3 m
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版