STMCU小助手
发布时间:2022-12-26 13:00
|
中断配置 使能接收中断% q# J* O6 F* N4 E d( R o$ [! r0 Q
中断服务函数 1. 中断服务函数名称查找 ! U; G. l3 R, G) Y' b n3 K1 G
+ K- X6 o2 R$ O1 `4 e( k 2. 中断服务函数 9 m: D& v8 S9 w$ E: P# r6 k * T; g$ h3 t5 ^7 N
3. 可以选择的串口中断类型 * u/ C& N& t0 k& b" |$ c4 M4 [. J % \' m' x5 a/ T B! v( w0 m2 e$ O
此处定义
其他文件中的声明 " i2 U. c% z: h: H6 w
/ m0 r) H3 I% u2 D- {3 j/ A extern u8 USART_RX_BUF[USART_REC_LEN] 最大接收字节数
extern u16 USART_RX_STA) [2 ?, N0 o# G8 `3 f 接收状态标记
. ?, c. b! M; Z6 E# t& s0 a ; L, z4 r: b$ \9 j1 r7 e( |0 p 0x0D是回车的ASCII码- u$ l. w+ V3 U$ S 1 E2 d( d& Z. h/ [ i 0x0A是换行的ASCII码" }% B9 k) D3 G F7 _( C+ R8 Z$ D 若电脑发送了一串数据,则我们需要在电脑发送这串数据的最后加上0x0D . Y$ }( ?# l. I; ^6 I B; t5 V# t STM32分析接收到的数据,如果读到0x0D,则将bit14置1 STM32分析接收到的数据,如果读到0x0A,则将bit15置1: B" h5 ~7 @' O5 C0 y0 z7 u7 E 4 y' _' U5 i# ^6 H 这里的0x0D和0x0A不会给bit13~0加15 T( I2 p0 A: E! t 外部函数只需要访问USART_RX_STA的bit15即可 " Q. z+ o$ I% Y. x% w' N, U* \6 { 若USART_RX_STA的bit15为1,则已经完成了一次接收了,而且我们知道,数据的长度是bit13~0" _7 R8 ~% R( M% z1 i7 L 因此,我们只需要按照bit13~0到USART_RX_BUF中去读取即可2 a; G1 o( A4 ]: o7 g, T 读取完成后,我们再把USART_RX_STA全部清0,以便下一次继续接收' H1 H) R; J. y8 }' I d8 o / \5 f" [6 v* _* y2 }2 q$ V
使用电脑发送数据时,记得勾选发送新行,这样就会以0x0D和0x0A结尾( b1 E2 N" A# ~- y! h( Q & \9 K$ N( Q1 E' v
———————————————— 版权声明:CodeForCoffee 5 j9 l' H D0 `$ {/ {) c$ P" l " {5 s( Z7 J& V* |' U, u9 i |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【福利三:雨露均沾·逢7狂欢】之一:STM32F1外部中断异常故障的解决办法
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
微信公众号
手机版