
和F1的一点区别: GPIO_Initure.Alternate=GPIO_AF7_USART1;多了这么一个东西用来对复用端口进行复用功能选择,F1不用选择,刚看到目前还不知道为啥。 F7不支持位带操作' d0 V9 Y2 f P3 k8 N7 b+ Y6 [+ t ** % y& x2 V4 u7 ?& ]6 b 767中断+ d( b8 F ~- L9 [ CM7内核支持256个中断,767使用了118个,包括10个内核中断和108个可屏蔽中断。具有16级可编程中断优先级。 ![]() ISER[8]:中断使能寄存器组,8个32位寄存器来控制CM7的256个中断,767自由ISER【0-3】有用,要使能某个中断,相应位置一* c+ \* B/ O t& E( ^ {% I ICER[8]:中断除能寄存器组,和ISER相反的功能。6 Y( a9 A0 X1 I- T8 p ISPR[8]:中断挂起寄存器组,将对应位中断挂起,执行其他同级或高级中断。 ICPR[8]:中断解挂控制寄存器组: IABR[8]:中断激活标志位寄存器组:对应位为1表对应位中断正在执行,通过它判断正在执行的中断,硬件清零。 IP[240]:中断优先级控制寄存器组:240个八位寄存器组,767用108个。IP【109】-IP【0】(98,97没用),每个可屏蔽中断的8bit用了高4位,分抢占优先级和子优先级。4 p; U& K: f7 V 6 ~5 H0 F# j# d9 P/ {6 M' o ![]() 7 Q: i: C) z e! K$ v 抢占优先级级别高于子优先级,数值低为高优先级。8 }! _) {& j- Z+ r1 S: |3 V9 C. ` & {& G; M, O& l 3 E5 z5 e0 H" {% [; B3 B( S5 o" u SYSTEM文件夹! q F$ B6 A! ~- { delay ![]() 使用SysTick定时器,24位倒计时,不占用中断和系统定时器。+ D5 r* y5 n X0 o% w 在ucos操作系统中,有SysTick提供时钟节拍,这个时钟一般不能打断。. ?" e9 @9 ?7 G8 J; l 这里的延时只是抓取SysTick值得变化,不修改,所以不影响ucos时钟节拍。 3 I* d" N* q9 U5 |/ Y! G9 x ![]() 3 h9 _! s1 i) j( {" c 在这里插入图片描述这里delay_ostickspersec是用来设置os时钟节拍的,由注释可见时钟节拍最大为77.7ms,这里767的SYSCLK值为216,如果要设置时钟节拍为5ms则设置delay_ostickspersec值为200,216000000/200=1080000,每个值计时1/216us,1080000/216=5000,即为5ms的os时钟节拍。3 v: V% L# y1 \7 u, K8 h reload*1000000计数值结束即为1s fac_ms值为os能延时的最小单位,比这个值小delay_ms就不会使用OS延时,而使用delay_us()来实现延时。如这里delay_ostickspersec值为200,fac_ms就为57 k* A% P! I8 K( r/ W2 N9 Q Sys* O! W' `9 [$ O& m 3 @! i) s# r. a! O+ j* s: y; _7 W ![]() ) c! k, z- ~3 Z# d% U. r5 m 开启数据cache和指令cache,并保证D-Cache和SRAM的数据保持同步刷新,防止数据不一致。$ ~! I, q, z5 r: ?; c 这个文件还负责重命名一些类型以及初始化时钟5 K2 N$ b( x2 V2 T& J & t* o# x9 |+ _# W7 j; H Usart printf函数支持,如果要修改一般就修改相应的串口号。 GPIO4 f* x" O: A; ] 开漏模式可以读IO输入电平变化,此模式可以把端口作为双向IO使用。- J4 o: R C: E/ X( @0 x# ^ HAL_GPIO_TogglePin();取反输出电平,内部是ODR寄存器的值决定输出电平。 2 J' s; c' j0 u& _- k, e BSRR寄存器和ODR寄存器功能相似,低16位写1输出高电平,高16位写1输出低电平。 HAL_GPIO_WritePin(GPIOx,GPIO_Pin,PinState);: {# d6 m! J7 G% V/ N 8 d7 n, Z# Y2 ^" h8 m6 G IDR寄存器用来读取GPIO口状态* {/ z* p* w+ b8 h' v* B HAL_GPIO_ReadPin(GPIOx,GPIO_Pin); * F- j( X/ q5 M* h |
【STM32F769I-DISC1】开发板刷入Micropython并完成点灯、读取内部温度测试
【STM32F769I-DISC1】测评01:创建STM32cube IDE 工程,点个灯
【STM32F769】创建deepseek本地服务,并实现http请求
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
coremark移植到STM32F769I-DISCO开发板的两种方法
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
刘氓兔的杂谈【001】-片上USB 高速PHY
【合集】STM32F7教程、资料大集合
基于STM32F746G-Discover的扩展电路板
F769 Discovery实现播放U盘音乐的播放器