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

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

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。
1 m2 t1 n% p" N* n3 R$ E( O  A& e; A* d! f
      开始还是使用CubeMx配置基本环境,如图1所示:
$ B) i. J, o& G# r8 q: Z 2-1.JPG - [* C; C/ s0 @
图1
, \( O( g; j2 R' u1 O; k! X  O  B4 L% p+ @# V' l/ g
首先需要测试一下发送,隔1S发送一次,代码如下所示:. ?4 }3 p+ R" |. ~; O
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);' |7 R4 E$ Q8 D9 l8 p
  2.                 HAL_Delay (1000);
复制代码
* V7 p* N3 n8 o& Y2 y# _( Z

6 E+ L- K4 H, Z( ?1 U: N通过串口助手是正常的,如图2所示:% C/ K% Q, i, [4 f+ T
2-2.JPG
3 n; d$ o$ X2 H4 J3 {6 v$ m图2! k, X+ p8 z9 y" G

5 ^' L' ]  [/ O增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:
: ]& c4 D0 Q9 S- F C0Debug错误2-3.JPG
9 w! E: j' r8 O+ d1 z4 B4 y. w图3# y1 O; K; }8 _. w: P
/ T) K2 J7 p- Y, a! D5 @
找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。0 _' j# A% D: g1 H% [* g2 m1 p
  1. if (huart->RxISR != NULL)' K! M* R( o, p0 j! M
  2.       {
    / U, ^5 l( \9 x6 n
  3.         UART_RxISR_8BIT(huart);
      f* [- \% B$ I" A' E
  4.       }( e4 A6 i' c- }+ p% Z0 h0 H
  5.       return;
复制代码

5 o* ~# l/ z. O
5 H3 m9 P& `0 K' ?: q 2-4.JPG + l9 I" V) [# `) d' q+ d
图4
: }2 W9 ~( R. @$ E, u
) U2 e3 D$ \  d5 f6 w6 I中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。0 M: d7 K+ k5 w( a1 h
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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