【学习必备】每天学习STM32小技巧-3 前一篇已分享了10个小技巧,今天继续为大家分享10个小技巧: c# f: Y8 R; A0 ?1 s) d) Z. M( ~* m L 技巧22:上电初始化后AIRC初始化为0,为16个抢先式优先级,但是由于所有的外部通道中断优先级控制字PRI_n为0,所以抢先式优先级相同,此时就不能嵌套了 : l% U* X! d$ [ 技巧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来表示打开或者关断是比较合理的 ( q q" W; W* j1 _( q, [0 C0 F 技巧24:中断标志位需要手动清除" z% d8 o" F% e6 g. V ) v& W$ r/ D+ k 技巧25:配置外围器件的一般步骤: ·打开端口时钟* \; V) a1 V4 b- k5 }1 `3 J ·定义初始化结构体并初始化$ Q/ @5 h: X0 m [+ i( P ·调用5 D, {' a; }4 Y8 U. g: d+ O 0 E' ^1 E/ F5 X, @. y7 `/ c, G7 y 技巧26:串口的奇偶校验:如果是奇偶校验,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;这个数据的长度必须设定为9位! ( ]0 P# ^6 \( D' U+ M: L 技巧27:ADC的规则组可以自定义转换通道顺序和转换的通道个数。在实际应用中,有时候希望有一些特别的通道具有很高的优先权,需要在规则组进行转换的时候强制打断,进行另一个通道的转换,这样一组通道,叫做注入组。& J4 B; q" B0 e/ ~9 ~0 ]; a7 s ' x$ v/ {- |/ ^, j0 }9 c$ K& x) t ; q' P' U3 v" e7 k( u 技巧28:定时器的输出比较模式:Timing(冻结,什么都不做,普通定时),Active(OCxREF输出高电平有效),Inactive(OCxREF输出低电平),Toggle(比较成功后翻转电平)。 技巧29:STM32的定时器从0开始计数,满足一些条件,给出标志位(比如匹配成功、时间更新、溢出等)然后从0开始计数。这一点和51不同。 技巧30:OCx=OCxREF+极性1 v# d: g, F1 B: q. G( p 论坛还未大家准备诸多STM32系列开发经验: ' j I. k7 `6 q3 A* e( w |
在高容量 STM32F103xx 微控制器中实现 ADPCM 算法
小马哥STM32F103开源小四轴RoboFly全部资料大放送
【经验分享】基于STM32F334的数字电源
《RT-Thread设备驱动开发指南》书籍学习记录
STM32F407/STM32F417通过以太网实现在应用中编程 (IAP)
分享STM32F051中文参考手册(重制书签版)
游名科技:STM32F103+TMC2160:86步进电机和驱动一体原理图/PCB...
STM32F103标准库开发---SPI实验---读写 W25Q128 外部 Flash
RT-Thread在STM32F103RC上移植
【MCU实战经验】+STM32F103的uCOSII详细移植