【学习必备】每天学习STM32小技巧-3 前一篇已分享了10个小技巧,今天继续为大家分享10个小技巧:8 u6 y+ |' t1 v 技巧22:上电初始化后AIRC初始化为0,为16个抢先式优先级,但是由于所有的外部通道中断优先级控制字PRI_n为0,所以抢先式优先级相同,此时就不能嵌套了6 u, [9 G0 T- b , u: O' l# W1 g! |3 | 技巧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来表示打开或者关断是比较合理的 技巧24:中断标志位需要手动清除* |4 P }3 X# h- S1 r, | 技巧25:配置外围器件的一般步骤:, b g0 \, J- U5 [' i8 Q$ C ·打开端口时钟: G' R3 }3 t7 Y' }3 w) s( F' L" q) }/ C ·定义初始化结构体并初始化 ·调用 技巧26:串口的奇偶校验:如果是奇偶校验,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;这个数据的长度必须设定为9位!; V; O2 g7 w" x7 P & I* h' T o/ K2 r! ] 技巧27:ADC的规则组可以自定义转换通道顺序和转换的通道个数。在实际应用中,有时候希望有一些特别的通道具有很高的优先权,需要在规则组进行转换的时候强制打断,进行另一个通道的转换,这样一组通道,叫做注入组。 0 u. B0 Z' m5 A/ ~1 c 技巧28:定时器的输出比较模式:Timing(冻结,什么都不做,普通定时),Active(OCxREF输出高电平有效),Inactive(OCxREF输出低电平),Toggle(比较成功后翻转电平)。 技巧29:STM32的定时器从0开始计数,满足一些条件,给出标志位(比如匹配成功、时间更新、溢出等)然后从0开始计数。这一点和51不同。% }( V* z c. f4 e T: r7 d% ? 5 `" e8 U+ Y- @2 L3 o4 S { 5 T" ~$ R. g0 v: I/ y8 ]! Y 技巧30:OCx=OCxREF+极性 3 l; H( {( S$ `# K1 f& u3 j# H 论坛还未大家准备诸多STM32系列开发经验:9 [6 w- J( n/ U, n : i; g/ K) u8 v" b8 U! o. W! { 8 L! {9 Q) \6 c |
【经验分享】新建基于STM32F40x 固件库的MDK5 工程
STM32F10xxx 正交编码器接口应用笔记 及源代码
年终中奖---F429板卡网络应用
【NUCLEO STM32F429ZI开发板】之点灯大师
小马哥STM32F103开源小四轴RoboFly全部资料大放送
STM32F0F1F4内部flash擦写时间和寿命
游名:STM32F030+FT1610FF1高精度超声波测距模块测距教程及参...
分享一个STM32F103的硬件IIC代码库,完美解决IIC问题!
OpenBLT移植到STM32F405开发板
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader