|
【学习必备】每天学习STM32小技巧-3 前一篇已分享了10个小技巧,今天继续为大家分享10个小技巧:! U- e+ H$ B) Y' E1 a5 B2 ]
技巧22:上电初始化后AIRC初始化为0,为16个抢先式优先级,但是由于所有的外部通道中断优先级控制字PRI_n为0,所以抢先式优先级相同,此时就不能嵌套了7 i( P( S! P, f: `4 X1 @ 9 u8 @" G, E, F$ \# B3 ^% X 技巧23:NVI中有ISER[2](Interrupt Set-Enable Registers),ICER[2](Interrupt Clear-Enable Registers),ISPR[2](Interrupt Set-Pending Registers),ICPR[2](Interrupt Clear-Pending Registers),IABR[2](Active Bit Registers),IPR[15](InterruptPriority Registers)定义。其中ISER和ICER分别为中断使能和中断失能寄存器,都是写1来使能/失能中断的。为什么写1?为什么不采用一个寄存器而用两个寄存器来表示中断使能/失能状态?由于硬件,写0比较复杂,并且可能造成其他位的状态改变,所以用1来表示打开或者关断是比较合理的 9 g( z) h6 ~, N3 w6 h% w 技巧24:中断标志位需要手动清除% F$ ^3 V. U0 W* E : \1 B) o, o$ d$ Q7 ~- d 技巧25:配置外围器件的一般步骤: ·打开端口时钟( H/ _; T U) u% l5 K ·定义初始化结构体并初始化0 N P. D+ e7 B0 k2 m$ ]$ X$ [4 J8 } ·调用+ j% C% a; [- h. U5 K6 ~% r0 v ( a7 q% I2 l1 I1 m 技巧26:串口的奇偶校验:如果是奇偶校验,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;这个数据的长度必须设定为9位! ; j0 C, G$ {" m+ M! f, z 5 d M K$ ^) @# L 技巧27:ADC的规则组可以自定义转换通道顺序和转换的通道个数。在实际应用中,有时候希望有一些特别的通道具有很高的优先权,需要在规则组进行转换的时候强制打断,进行另一个通道的转换,这样一组通道,叫做注入组。 ) g5 |& p3 t8 `( J( i# g9 x4 X6 I 技巧28:定时器的输出比较模式:Timing(冻结,什么都不做,普通定时),Active(OCxREF输出高电平有效),Inactive(OCxREF输出低电平),Toggle(比较成功后翻转电平)。/ a; A1 ]7 _" }* ^5 G& m7 Z2 s/ j . X( a0 Q: }& J3 ^. w" T. `+ i. H2 X% d 技巧29:STM32的定时器从0开始计数,满足一些条件,给出标志位(比如匹配成功、时间更新、溢出等)然后从0开始计数。这一点和51不同。! p( _4 b _# A- S4 j. j l3 P 2 \% b8 |) U6 v6 `! Z% G/ \0 e; s 技巧30:OCx=OCxREF+极性 # S, o2 T. `( j `) R* i+ I " s( D: k9 D3 j& L. c' @5 F论坛还未大家准备诸多STM32系列开发经验: O+ ]2 z; E9 S7 b0 T" ] ! I+ A7 s3 w. ~" c1 c; _ |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
基于STM32F303双电机FOC驱动: 无感原理图/BOM表/代码等开源...
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版