STMCU小助手
发布时间:2022-12-24 17:39
|
中断配置' I) P0 n) W/ }; L3 B, Q 使能接收中断
1 |/ U, ^. l& N 中断服务函数 1. 中断服务函数名称查找
! u& A A) ^/ m7 { 2. 中断服务函数 + ^2 L6 Z2 z F6 L( W7 M: N) v * N4 |' F6 H& N. N! ^5 O! |
2 z' V# a2 o% ^! ~ 3. 可以选择的串口中断类型 / A5 q+ ], Z3 Y0 U* N
此处定义
" s- ?# e* m1 L5 K) b& I; R 其他文件中的声明, |* F" W- D5 C s- m+ d" Q
extern u8 USART_RX_BUF[USART_REC_LEN]) H9 E9 D# W. c, F# H' u 最大接收字节数 % }# e; |( p6 s |; |
extern u16 USART_RX_STA 接收状态标记. _+ A1 r& z. @' [% Y7 ~; d7 w5 d' { f 5 [4 C% x6 m2 F
0x0D是回车的ASCII码 0x0A是换行的ASCII码8 `( N4 @+ G/ y1 y+ R* i2 x5 B3 \ 若电脑发送了一串数据,则我们需要在电脑发送这串数据的最后加上0x0D p- n, B8 V { STM32分析接收到的数据,如果读到0x0D,则将bit14置; `% v' U& K) Y G STM32分析接收到的数据,如果读到0x0A,则将bit15置1; z" C+ U, j# k* a) b, r; H p: q 这里的0x0D和0x0A不会给bit13~0加1 外部函数只需要访问USART_RX_STA的bit15即可 若USART_RX_STA的bit15为1,则已经完成了一次接收了,而且我们知道,数据的长度是bit13~0# h; k8 l8 ^' {4 Q& ]2 t 因此,我们只需要按照bit13~0到USART_RX_BUF中去读取即可0 f2 t# Y# I$ E" S: t5 [+ S* e 读取完成后,我们再把USART_RX_STA全部清0,以便下一次继续接收 a2 Q0 }9 S3 ~7 H
7 {; {0 f5 D$ z8 D; n" e
使用电脑发送数据时,记得勾选发送新行,这样就会以0x0D和0x0A结尾; \5 U2 I( R7 q1 W# d' m, B
+ }4 L* v4 g# ?; P0 m ———————————————— 版权声明:CodeForCoffee: `7 H8 F; }& n! H+ a1 f |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版