|
今天中午折腾了一中午,终于把串口中断搞出来了,思想是寄存器的思想,对于HAL的那个库有点蒙,所以加了点寄存器的思路; 本人用的是USART2加复用的引脚,所以TX和RX是PD5和PD6 接下来配置一下他的USART方面的协议; 3 B* c& b7 ~; q: e" f" o8 q 3 n9 K e& p, r/ L! q# g* M# d 点击USART进入% @! ?$ b/ _) Y7 i7 p; v + c) d+ h( @* A: P4 x4 h5 H . u* s" O+ S1 J0 O5 a$ Z' Q 这个是配置你的中断函数的优先级的; ' {. k7 K3 i* v( k6 ~8 l6 E2 k: B 好了,配置好这些以后,生成代码% h2 q6 Z; y0 \ 3 N/ ^! m. A* ?+ |0 W% T! n
4 ~- N$ |9 ?2 `" S& n0 X @ 核心思想在这个函数中,这个函数是你的接受完数据的一个回调函数;! @, l8 @0 e; ~2 F, _2 S* G 在这里还需要一个知识点就是,你在这个中断函数里边需要调用 HAL_UART_Receive_IT(&huart2,&flag,1);//使能RX那个功能;//1代表的是你进入一次中断所需要接收的数据的大小 函数,来使能中断,使其能再次进入这个中断;
8 |1 n5 x# @" M$ n 这个中断处理的函数我就不细讲了,就两句话,接收和发送,操作寄存器(这是我的思路,我知道别人肯定和我不一样,但是我这个亲测确实可以接受不定长的数据);# t; G7 I/ I1 h0 s2 w ( W3 J$ ]7 V) ?2 [; B, d3 @$ l
USART.rar
(3.96 MB, 下载次数: 18)
|
| 楼主加油! |
微信公众号
手机版