IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32第三天 -> 正文阅读

[嵌入式]STM32第三天

四、库函数开发
4.1 寄存器
寄存器开发优点
直接操作寄存器,运行效率高。

寄存器开发缺点
开发难度大,开发周期长
代码可阅读性差,可移植差
后期维护难度高
4.2库函数
库函数开优点
开发难度较小,开发周期短
代码可阅读性强,可移植高
后期维护难度低
库函数开缺点
相对于寄存器开发,运行效率略低
注意:库函数其实是ST公司对寄存器的进一步封装。

4.3库函数开发LED
1.库函数开发LED要添加的库函数文件:stm32f4xx_gpio.c
在这里插入图片描述

2.理解led灯原理图
LED0连接在PF9 PF9输出低电平(0),灯亮;PF9输出高电平(0),灯灭;
在这里插入图片描述

3.打开GPIOF组时钟
在STM32芯片中,所有的外设时钟是不打开,为了降低功耗
//打开GPIOF组时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

4.设置PF9灯为输出模式 输出推挽 上拉 速度(50MHZ)
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9; //引脚
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //输出模式
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //输出推挽
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHZ
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOF, &GPIO_InitStruct);

5.通过下面控制LED灯亮与灭
GPIO_SetBits() 引脚置1
GPIO_ResetBits() 引脚置0

4.4按键库函数开发
1.库函数开发按键要添加的库函数文件:stm32f4xx_gpio.c
2.理解控制原理
KEY0连接在PA0 按键未按下,PA0为高电平 按键 按下,PA0为低电平
在这里插入图片描述

3.打开GPIOA组时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //打开GPIOA组时钟

4.设置引脚为输入,上拉。
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; //引脚0
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //输入模式
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOA, &GPIO_InitStruct);

5.通过下面函数获取引脚电平
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
4.5中断
中断概念:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行(面试题)。
STM32外部中部需要注重知识点EXTI与NVIC
1.外部中断/事件控制器 (EXTI)
EXTI 控制器的主要特性如下:
● 每个中断/事件线上都具有独立的触发和屏蔽
● 每个中断线都具有专用的状态位
● 支持多达 23 个软件事件/中断请求
● 检测脉冲宽度低于 APB2 时钟宽度的外部信号。有关此参数的详细信息,请参见
STM32F4xx 数据手册的电气特性部分。在这里插入图片描述

上升沿:数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。
下降沿:数字电路中,数字电平从高电平(数字“1”)变为低电平(数字“0”)的那一瞬间叫作下降沿。

2.NVIC嵌套向量中断控制器 (NVIC)
嵌套向量中断控制器 NVIC 包含以下特性:
● STM32F405xx/07xx 和 STM32F415xx/17xx 具有 82 个可屏蔽中断通道, STM32F42xxx
和 STM32F43xxx 具有多达 86 个可屏蔽中断通道(不包括 Cortex?-M4F 的 16 根中断线)
● 16 个可编程优先级(使用了 4 位中断优先级)
● 低延迟异常和中断处理
● 电源管理控制
● 系统控制寄存器的实现
嵌套向量中断控制器 (NVIC) 和处理器内核接口紧密配合,可以实现低延迟的中断处理和晚
到中断的高效处理。
数字越小,优先级别越高

抢占优先级 & 响应优先级区别:
高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;
例:
假定设置中断优先级组为2,然后设置中断3(RTC中断)的抢占优先级为2,响应优先级为1。 中断6(外部中断0)的抢占优先级为3,响应优先级为0。中断7(外部中断1)的抢占优先级为2,响应优先级为0。
中断7>中断3>中断6。
3.外部中断配置流程
外部中断配置流程要添加的库函数:stm32f4xx_exti.c和stm32f4xx_syscfg.c
①理解按键原理
KEY0 连接PA0,选择下降沿触发
在这里插入图片描述

②设置NVIC分组 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
③使能SYSCFG时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
④初始化IO口为输入。 GPIO_Init();
⑤设置IO口与中断线的映射关系。 void SYSCFG_EXTILineConfig();
⑥初始化线上中断,设置触发条件等。EXTI_Init();
⑦配置中断分组(NVIC),并使能中断。NVIC_Init();
⑧ 编写中断服务函数。EXTIx_IRQHandler();
⑨清除中断标志位EXTI_ClearITPendingBit();

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:37:02  更:2021-07-09 17:37:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:25:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码