STMCU小助手
发布时间:2021-12-12 21:55
|
和F1的一点区别: 3 I0 ?. `8 g8 m4 c GPIO_Initure.Alternate=GPIO_AF7_USART1;多了这么一个东西用来对复用端口进行复用功能选择,F1不用选择,刚看到目前还不知道为啥。6 [& r. N$ t. d3 X! R$ a F7不支持位带操作8 S4 R% a6 X! V ** 767中断0 W) `* k+ F) y! e( ^9 s" v8 F. R CM7内核支持256个中断,767使用了118个,包括10个内核中断和108个可屏蔽中断。具有16级可编程中断优先级。
+ r7 w- b7 S: ^; F) \ ISER[8]:中断使能寄存器组,8个32位寄存器来控制CM7的256个中断,767自由ISER【0-3】有用,要使能某个中断,相应位置一 ICER[8]:中断除能寄存器组,和ISER相反的功能。3 a, k# l& N1 B3 I# W% }& w4 B6 x ISPR[8]:中断挂起寄存器组,将对应位中断挂起,执行其他同级或高级中断。 ICPR[8]:中断解挂控制寄存器组: F7 g& R: X; S! |( p IABR[8]:中断激活标志位寄存器组:对应位为1表对应位中断正在执行,通过它判断正在执行的中断,硬件清零。 IP[240]:中断优先级控制寄存器组:240个八位寄存器组,767用108个。IP【109】-IP【0】(98,97没用),每个可屏蔽中断的8bit用了高4位,分抢占优先级和子优先级。 S2 x& {* k2 G8 g3 s0 V4 z % u- Z; C- V/ Z/ [2 f: Y 0 k1 i M! S; `8 U, a2 Y
抢占优先级级别高于子优先级,数值低为高优先级。 SYSTEM文件夹3 P% Y2 b1 L }6 T0 a0 S6 o3 A+ ] delay+ v: n. w3 L* f: V/ V" X
使用SysTick定时器,24位倒计时,不占用中断和系统定时器。 在ucos操作系统中,有SysTick提供时钟节拍,这个时钟一般不能打断。9 Y1 E1 ?8 i/ @9 r 这里的延时只是抓取SysTick值得变化,不修改,所以不影响ucos时钟节拍。
在这里插入图片描述这里delay_ostickspersec是用来设置os时钟节拍的,由注释可见时钟节拍最大为77.7ms,这里767的SYSCLK值为216,如果要设置时钟节拍为5ms则设置delay_ostickspersec值为200,216000000/200=1080000,每个值计时1/216us,1080000/216=5000,即为5ms的os时钟节拍。# I6 n9 K# A! ]6 s) q: Q) J1 P reload*1000000计数值结束即为1s ) }! Q4 n" j, L3 A0 `7 I fac_ms值为os能延时的最小单位,比这个值小delay_ms就不会使用OS延时,而使用delay_us()来实现延时。如这里delay_ostickspersec值为200,fac_ms就为52 Y8 \: L2 \; s( Y5 M3 s 9 K/ ?/ `. H1 A2 G% d0 K) c Sys' _, b9 q0 m$ x4 ~
开启数据cache和指令cache,并保证D-Cache和SRAM的数据保持同步刷新,防止数据不一致。 这个文件还负责重命名一些类型以及初始化时钟 7 j8 `( D& V& V Usart6 s/ P, S" p! A- p( r1 r* Q printf函数支持,如果要修改一般就修改相应的串口号。: z4 V) |* ^, u GPIO 开漏模式可以读IO输入电平变化,此模式可以把端口作为双向IO使用。7 i+ d7 _6 \/ H HAL_GPIO_TogglePin();取反输出电平,内部是ODR寄存器的值决定输出电平。 5 l2 G/ t; G, `- Y2 y8 ]& ?" I BSRR寄存器和ODR寄存器功能相似,低16位写1输出高电平,高16位写1输出低电平。 HAL_GPIO_WritePin(GPIOx,GPIO_Pin,PinState); * Q. U, }# t% \9 Y- k# J- \ IDR寄存器用来读取GPIO口状态 HAL_GPIO_ReadPin(GPIOx,GPIO_Pin); $ t. j' f' ^, y/ h1 l X - Y% D7 u1 O7 B5 x, A" M" I - ]& H9 z' }1 I |
基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料...
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
微信公众号
手机版