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

使用 UART IDLE 中断接收不定长数据

[复制链接]
STMCU小助手 发布时间:2022-7-29 16:14
前言
6 d1 r) m- ?9 u8 H+ C+ l/ ^/ P在串口通信过程中,我们常常用到接受和发送中断,相信大家都不陌生。这里还有另一个非常有用的中断可能被大家所忽略,即总线空闲状态 IDLE 中断。当一帧数据传输结束之后,总线会维持高电平空闲,此时会触发 MCU 的 IDLE中断。在本文中,将介绍使用该中断来进行不定长串口数据接收的办法。通过该中断,可以省却用于检测数据传输是否完成的判断操作。
1 p+ n: M. [! p) c; z$ E  f
) U$ A# l- I4 X实验环境
- Y, y" B, R; l7 tSTM32F411RE-NUCLEO% D; W2 v) {0 w: C- |' ?# J
STM32CubeMX4 w8 O8 t- m8 k- i- F. R/ s8 f9 ^

. L& u- {3 C$ T! Y
+ e& X: p2 X  y1 `0 e3 T7 q
总线状态分析 ( q" \% V+ b& n
下图是发送 0xAA 0x55 的所抓取到的波形。从图中我们可以看到在发送该帧之前和之后,总线时钟处于 IDLE 状态。
. e& n& c/ |8 x  t" F  F在该帧中,字节与字节之间,没有 IDLE 状态出现,即不会出现 IDLE 误触发的情况。
5 Z" }2 e0 R/ ?" ]1 S2 U* z+ C) I: Y+ c+ }- F$ {
WZK_Y[DSKQ{%8O31NRD%S.png % `: k3 a( H5 s0 J+ h9 b! z
& n% q$ @  B7 f2 L+ {' c0 [7 M0 @+ T+ V; ^6 F
不定长数据接收
- E% I" a" b5 M8 x8 x$ l9 }& G+ w本次制作的工程是基于 HAL 库的。在原生的 HAL 库中,并没有集成 IDLE 中断的处理。所以,在本文我们介绍的方法中,需要修改一些库文件来实现。: j* D( v% M8 j( A8 ~1 Q
1 v6 D6 s- T3 ], I: u3 l% I7 O
使用 STM32CubeMX 生成实验工程' o& N/ V. _, e: P2 i! Q
工程的配置如下图:
) X, G/ O* V9 p% ?  ~! r1. 系统始终配置为 100MHz) X/ D: I8 `: P2 |1 R
2. 配置 USART2 为 Asynchrones,管脚配置为 PA2,PA3。
8 J( r( v" \0 p; \3. USART2 参数:9600Bits/s, 8bits, None,1Stop - L6 B( `! Y0 p' u- j
0 h' F6 l6 W5 O0 r9 z. R! i
P~KJ4AJTL4LV4({X2NUNM.png 8 O9 }, O) C8 _/ u2 _$ J( X

+ h: s6 r3 W7 Q) q. M- V为了方便打印接收到的相关信息,需要对生成的工程做如下修改来映射 print 函数。
% }, I( g1 q, g1 amain.c-声明
  1. #ifdef __GNUC__
    ; t; i. O7 w7 F8 X7 G
  2. /* With GCC, small printf (option LD Linker->Libraries->Small printf" h& ?6 `% |( ]# [7 T; t/ I6 |" x. ^
  3. set to 'Yes') calls __io_putchar() */
    4 O* j4 q0 I& W
  4. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)/ D; I; E! R- Q7 @+ l
  5. #else2 M/ Z) j& m. U  r7 p4 W
  6. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    4 u& ^  ~% ~' v. J3 H3 F
  7. #endif /* __GNUC__ */
复制代码

% y3 O. ^7 @) z3 ]) H# q
8 }9 w1 d/ S5 q! x, s完整版请查看:附件

. T9 w$ Q, |8 j  L: _2 W0 L$ ~  o0 ~

: K. ?, A. t& _# M7 \! N: e# o; y

LAT0534_UART_IDLE中断使用_接收不定长串口数据.pdf

下载

427.31 KB, 下载次数: 10

收藏 评论0 发布时间:2022-7-29 16:14

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版