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

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

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。, e2 Y- _3 f' ?
7 \: k) R  p' n
      开始还是使用CubeMx配置基本环境,如图1所示:+ F' V8 B/ X  ?& H) u5 y
2-1.JPG " j# `6 A8 ^& l% _/ T9 s
图1
) }% r# N2 U& o, q7 Y8 b$ [6 m# T8 n1 O) g8 K5 m( b
首先需要测试一下发送,隔1S发送一次,代码如下所示:
2 X, F/ O* z( X1 Z! c: H  b) N
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);8 h5 K- l. |; m- y, K
  2.                 HAL_Delay (1000);
复制代码
2 _# L8 u& V! B) X! D
1 \+ D: T, A$ {" N
通过串口助手是正常的,如图2所示:
: b" F) y6 ^3 t/ C 2-2.JPG
; [: x* @4 q9 q& Y% i图2* q( Y( M$ r0 g: d5 G  \9 [$ ^$ t

9 Y( A9 s6 n; o增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:) ^' |4 Y% b$ q
C0Debug错误2-3.JPG
  B+ W2 H, C* i' ~9 p5 g图39 ~; C  x: j8 k
* x, h. j. B( E
找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。
" G; h+ N% ^" z
  1. if (huart->RxISR != NULL)
    5 u' I' K& h. ~' m1 g& v) N
  2.       {
    & x. {. W5 Z9 K
  3.         UART_RxISR_8BIT(huart);
    3 T: [: m' U* x  \/ Q" @
  4.       }
    $ [# {. _5 d! Z
  5.       return;
复制代码
0 v& ^" R; E/ @) o

3 [2 V7 W1 b: J# t5 a; \ 2-4.JPG : b5 ]9 m* ~3 p1 v
图4
7 j4 \8 {, A+ k8 t+ s& r6 B2 Z* G
9 X; x+ [/ b4 i$ y中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。& \; K  e6 r! R
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似分享

官网相关资源

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