你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F7学习第一次笔记--一些混杂知识点

[复制链接]
STMCU小助手 发布时间:2021-12-12 21:55
和F1的一点区别:

GPIO_Initure.Alternate=GPIO_AF7_USART1;多了这么一个东西用来对复用端口进行复用功能选择,F1不用选择,刚看到目前还不知道为啥。
F7不支持位带操作
**

767中断
CM7内核支持256个中断,767使用了118个,包括10个内核中断和108个可屏蔽中断。具有16级可编程中断优先级。
20210113172219789.png


ISER[8]:中断使能寄存器组,8个32位寄存器来控制CM7的256个中断,767自由ISER【0-3】有用,要使能某个中断,相应位置一
ICER[8]:中断除能寄存器组,和ISER相反的功能。
ISPR[8]:中断挂起寄存器组,将对应位中断挂起,执行其他同级或高级中断。
ICPR[8]:中断解挂控制寄存器组:
IABR[8]:中断激活标志位寄存器组:对应位为1表对应位中断正在执行,通过它判断正在执行的中断,硬件清零。
IP[240]:中断优先级控制寄存器组:240个八位寄存器组,767用108个。IP【109】-IP【0】(98,97没用),每个可屏蔽中断的8bit用了高4位,分抢占优先级和子优先级。


2021011317321818.png


抢占优先级级别高于子优先级,数值低为高优先级。


SYSTEM文件夹
delay

20210113212421444.png

使用SysTick定时器,24位倒计时,不占用中断和系统定时器。
在ucos操作系统中,有SysTick提供时钟节拍,这个时钟一般不能打断。
这里的延时只是抓取SysTick值得变化,不修改,所以不影响ucos时钟节拍。

20210113221828459.png


在这里插入图片描述这里delay_ostickspersec是用来设置os时钟节拍的,由注释可见时钟节拍最大为77.7ms,这里767的SYSCLK值为216,如果要设置时钟节拍为5ms则设置delay_ostickspersec值为200,216000000/200=1080000,每个值计时1/216us,1080000/216=5000,即为5ms的os时钟节拍。
reload*1000000计数值结束即为1s

fac_ms值为os能延时的最小单位,比这个值小delay_ms就不会使用OS延时,而使用delay_us()来实现延时。如这里delay_ostickspersec值为200,fac_ms就为5

Sys

20210114124733452.png


开启数据cache和指令cache,并保证D-Cache和SRAM的数据保持同步刷新,防止数据不一致。
这个文件还负责重命名一些类型以及初始化时钟

Usart
printf函数支持,如果要修改一般就修改相应的串口号。

GPIO
开漏模式可以读IO输入电平变化,此模式可以把端口作为双向IO使用。

HAL_GPIO_TogglePin();取反输出电平,内部是ODR寄存器的值决定输出电平。

BSRR寄存器和ODR寄存器功能相似,低16位写1输出高电平,高16位写1输出低电平。
HAL_GPIO_WritePin(GPIOx,GPIO_Pin,PinState);

IDR寄存器用来读取GPIO口状态
HAL_GPIO_ReadPin(GPIOx,GPIO_Pin);



收藏 评论0 发布时间:2021-12-12 21:55

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版