
和F1的一点区别: b/ U- G& W& U, W GPIO_Initure.Alternate=GPIO_AF7_USART1;多了这么一个东西用来对复用端口进行复用功能选择,F1不用选择,刚看到目前还不知道为啥。2 W6 c1 E) k5 r/ V0 B& o8 o F7不支持位带操作- z" C9 ?* n G5 Z ** , z2 M3 D9 }% e 767中断 CM7内核支持256个中断,767使用了118个,包括10个内核中断和108个可屏蔽中断。具有16级可编程中断优先级。/ s! n& H( D6 P ![]() % d: w/ |6 f8 [8 X6 B3 |. `* s. G ISER[8]:中断使能寄存器组,8个32位寄存器来控制CM7的256个中断,767自由ISER【0-3】有用,要使能某个中断,相应位置一, L4 g$ P* A3 p ICER[8]:中断除能寄存器组,和ISER相反的功能。 ISPR[8]:中断挂起寄存器组,将对应位中断挂起,执行其他同级或高级中断。; C. `8 M0 A0 Q9 h, [ ICPR[8]:中断解挂控制寄存器组: IABR[8]:中断激活标志位寄存器组:对应位为1表对应位中断正在执行,通过它判断正在执行的中断,硬件清零。0 X: L( c+ }" F1 o IP[240]:中断优先级控制寄存器组:240个八位寄存器组,767用108个。IP【109】-IP【0】(98,97没用),每个可屏蔽中断的8bit用了高4位,分抢占优先级和子优先级。$ v- W+ U7 q0 l( p# p7 T+ k. f ![]() 抢占优先级级别高于子优先级,数值低为高优先级。 + s( G; d2 j; n3 \, ^ SYSTEM文件夹0 }9 a. M3 Q/ J! a5 p+ B8 Y delay - x% g0 n5 o3 l# [( } ![]() 使用SysTick定时器,24位倒计时,不占用中断和系统定时器。/ f a2 g) @# ?" t: {% k 在ucos操作系统中,有SysTick提供时钟节拍,这个时钟一般不能打断。 这里的延时只是抓取SysTick值得变化,不修改,所以不影响ucos时钟节拍。! C! S$ D4 C3 ] ![]() 在这里插入图片描述这里delay_ostickspersec是用来设置os时钟节拍的,由注释可见时钟节拍最大为77.7ms,这里767的SYSCLK值为216,如果要设置时钟节拍为5ms则设置delay_ostickspersec值为200,216000000/200=1080000,每个值计时1/216us,1080000/216=5000,即为5ms的os时钟节拍。0 i. M' X) R: T* i' m reload*1000000计数值结束即为1s 8 Y9 G4 [# F1 }8 ~& Z4 d fac_ms值为os能延时的最小单位,比这个值小delay_ms就不会使用OS延时,而使用delay_us()来实现延时。如这里delay_ostickspersec值为200,fac_ms就为5& E6 \7 T% m, O/ f1 \" E' ? 2 } x& x2 j: V Y [) t Sys3 e" q5 X" d; Z( }' u$ S _' H; b+ C ![]() , k' v, r9 Q- W7 Y& t- C! m4 G 开启数据cache和指令cache,并保证D-Cache和SRAM的数据保持同步刷新,防止数据不一致。# n7 ~7 U! ]- C' `! D 这个文件还负责重命名一些类型以及初始化时钟+ b( Y* K, x5 ] _: n & s g( H: U1 m- V4 f% H1 q4 w Usart printf函数支持,如果要修改一般就修改相应的串口号。6 e& i: n( h2 X: m- | , w2 t2 d4 J! `3 k GPIO D" K! p" P7 i) U E# t& A 开漏模式可以读IO输入电平变化,此模式可以把端口作为双向IO使用。- Z% ^8 Q- Q2 `# u* _, w& } HAL_GPIO_TogglePin();取反输出电平,内部是ODR寄存器的值决定输出电平。8 A2 F8 F# @2 f4 B' }: p9 ^ ( q0 B4 x8 a/ s& D BSRR寄存器和ODR寄存器功能相似,低16位写1输出高电平,高16位写1输出低电平。 HAL_GPIO_WritePin(GPIOx,GPIO_Pin,PinState); " n# `" [0 B1 ^* l& C( C IDR寄存器用来读取GPIO口状态# c( J6 _# L. X, D! {# N7 M HAL_GPIO_ReadPin(GPIOx,GPIO_Pin); ) n& h& Q. d$ ?3 ^. j Q: S 2 V1 @* l$ ^) v- h5 K$ [& c7 Y& \) j6 N $ g+ {& ~: u! w7 `4 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盘音乐的播放器