STMCU小助手
发布时间:2021-12-12 21:55
|
和F1的一点区别:! V! W# w7 T+ c3 L$ J7 h 9 p8 f, n# O4 I* w2 J. e2 B GPIO_Initure.Alternate=GPIO_AF7_USART1;多了这么一个东西用来对复用端口进行复用功能选择,F1不用选择,刚看到目前还不知道为啥。$ G2 V5 P, \, _/ S1 T+ D8 a% Q F7不支持位带操作 ** 767中断 CM7内核支持256个中断,767使用了118个,包括10个内核中断和108个可屏蔽中断。具有16级可编程中断优先级。
; j( D4 @/ ^( b ISER[8]:中断使能寄存器组,8个32位寄存器来控制CM7的256个中断,767自由ISER【0-3】有用,要使能某个中断,相应位置一 ICER[8]:中断除能寄存器组,和ISER相反的功能。) b/ e w3 f4 n3 ~, V( V& g ISPR[8]:中断挂起寄存器组,将对应位中断挂起,执行其他同级或高级中断。4 h. y- Q/ o0 ]+ m& D! ]8 u ICPR[8]:中断解挂控制寄存器组:' ?$ t4 ~# ]8 ~3 N1 A# | IABR[8]:中断激活标志位寄存器组:对应位为1表对应位中断正在执行,通过它判断正在执行的中断,硬件清零。 IP[240]:中断优先级控制寄存器组:240个八位寄存器组,767用108个。IP【109】-IP【0】(98,97没用),每个可屏蔽中断的8bit用了高4位,分抢占优先级和子优先级。+ w; b" b) W) x; i# w1 }+ O& f . A6 ~) ^% _, W; N0 u4 S
抢占优先级级别高于子优先级,数值低为高优先级。 . ~' i. K b$ ?+ f2 i' @* Y; f SYSTEM文件夹 delay
使用SysTick定时器,24位倒计时,不占用中断和系统定时器。3 Y6 ~2 g9 x$ o2 c' F! E7 ? 在ucos操作系统中,有SysTick提供时钟节拍,这个时钟一般不能打断。+ ?' m4 G* \9 P! G 这里的延时只是抓取SysTick值得变化,不修改,所以不影响ucos时钟节拍。
在这里插入图片描述这里delay_ostickspersec是用来设置os时钟节拍的,由注释可见时钟节拍最大为77.7ms,这里767的SYSCLK值为216,如果要设置时钟节拍为5ms则设置delay_ostickspersec值为200,216000000/200=1080000,每个值计时1/216us,1080000/216=5000,即为5ms的os时钟节拍。1 f. x! U/ f; @& ]" X0 w reload*1000000计数值结束即为1s 0 m5 H$ A/ t; ~3 m' W fac_ms值为os能延时的最小单位,比这个值小delay_ms就不会使用OS延时,而使用delay_us()来实现延时。如这里delay_ostickspersec值为200,fac_ms就为5 Sys
% e5 n6 g+ Z- h2 U0 A0 ^ 开启数据cache和指令cache,并保证D-Cache和SRAM的数据保持同步刷新,防止数据不一致。/ h" V2 o- H3 q: I# \$ V 这个文件还负责重命名一些类型以及初始化时钟 Usart6 K/ W- X0 }9 `/ o' ] printf函数支持,如果要修改一般就修改相应的串口号。/ u1 e; R1 B6 n* e( s, E4 t GPIO 开漏模式可以读IO输入电平变化,此模式可以把端口作为双向IO使用。( g, G9 I7 Y- }5 ?+ m& B$ _ HAL_GPIO_TogglePin();取反输出电平,内部是ODR寄存器的值决定输出电平。. H: V) ]# P( H+ R6 ` BSRR寄存器和ODR寄存器功能相似,低16位写1输出高电平,高16位写1输出低电平。 HAL_GPIO_WritePin(GPIOx,GPIO_Pin,PinState);8 U$ H' `) l. V" I ( k5 ]* [" j; r D IDR寄存器用来读取GPIO口状态 HAL_GPIO_ReadPin(GPIOx,GPIO_Pin);$ Y) p& f: F& A: t4 u; a" p( t8 t . t) X2 F) f Z1 A. Y6 r4 v7 E |
基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料...
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
微信公众号
手机版