【学习必备】每天学习STM32小技巧-3 前一篇已分享了10个小技巧,今天继续为大家分享10个小技巧:' a6 T' [: c( k# Y0 D/ z5 X9 \) f* L+ J+ P) V , C; x# v' P5 q, J* Y8 e5 ` 技巧22:上电初始化后AIRC初始化为0,为16个抢先式优先级,但是由于所有的外部通道中断优先级控制字PRI_n为0,所以抢先式优先级相同,此时就不能嵌套了* L! e/ k" f! k/ j- K 技巧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来表示打开或者关断是比较合理的+ v& W& G, d5 h # S* v f' \% [1 u& N& |* s( u5 ` 技巧24:中断标志位需要手动清除 + o6 L7 U. d" } 技巧25:配置外围器件的一般步骤:+ P9 Z3 L5 g- U4 t: m* ?- J ·打开端口时钟& f7 L3 h2 r1 ?# i ·定义初始化结构体并初始化 ·调用 技巧26:串口的奇偶校验:如果是奇偶校验,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;这个数据的长度必须设定为9位!( X* s& r# Q% v% g 2 ]4 i" _2 e( X! K7 `* ^, _- @& Z % \8 n" F+ Z& X" d- ^1 h; j 技巧27:ADC的规则组可以自定义转换通道顺序和转换的通道个数。在实际应用中,有时候希望有一些特别的通道具有很高的优先权,需要在规则组进行转换的时候强制打断,进行另一个通道的转换,这样一组通道,叫做注入组。6 B) p5 {2 v* A& E; V- b+ z: J ( U- H, V, O9 ? 技巧28:定时器的输出比较模式:Timing(冻结,什么都不做,普通定时),Active(OCxREF输出高电平有效),Inactive(OCxREF输出低电平),Toggle(比较成功后翻转电平)。 技巧29:STM32的定时器从0开始计数,满足一些条件,给出标志位(比如匹配成功、时间更新、溢出等)然后从0开始计数。这一点和51不同。( z7 a# I; V- |4 p# N 1 K( ]0 H! z' `( d( Q n 技巧30:OCx=OCxREF+极性 论坛还未大家准备诸多STM32系列开发经验: 1 |4 r# V: m$ ]; K( P4 d. J" |+ | |
小马哥STM32F103开源小四轴RoboFly全部资料大放送
STM32固件库分享,超全系列整理
三创电子(Tcreate)-STM32F030核心板代码
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
【MCU实战经验】+STM32F107的USB使用
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F0 ADC(DMA中断)多通道,注释超详细
FreeRTOS在STM32F030上的移植
基于STM32F103两轮平衡小车设计(开源)
STM32F107VCT6官方原理图和PCB