当前位置: 首页 > wzjs >正文

北京网站排名推广wordpress文章签名插件

北京网站排名推广,wordpress文章签名插件,外贸网站建设多少钱,seo指的是搜索引擎营销一、OLED 1.1 OLED介绍 OLED(Organic Light Emitting Diode):有机发光二极管 OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点 0.96寸OLED模块:小巧玲珑、占用接口少…

一、OLED

1.1 OLED介绍

OLED(Organic Light Emitting Diode):有机发光二极管

OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点

0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块

供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*64

4针脚:I2C 7针脚:SPI

1.2 OLED驱动函数

二、中断

2.1 中断介绍

中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。

中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。

中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。

2.2 中断执行流程

3.3 中断分类

68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设。

使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级。

NVIC就是STM32中用来管理中断分配优先级的。

图中灰色的是内核的中断,其他的是STM32外设中断。

程序中的中断函数,地址是由编译器来分配的是不固定的,但是中断跳转,由于硬件的限制只能跳到固定的地址执行程序,所以为了能让硬件跳到一个不固定的中断函数里,这就需要在内存中定义一个地址的列表,这个列表地址就是固定的中断发生后,就跳到这个固定的地址位置,然后再这个固定的位置,由编译器再加上一条跳转到中断函数的代码,这个中断跳转就可以跳转到任意的位置了,这个中断地址的列表,就叫中断向量表。

3.4 NVIC

3.4.1基本结构

NVIC:嵌套中断向量控制器。

在STM32中,它是用来统一分配中断优先级和管理中断的,NVIC是内核外设。

下图中/n意思是:一个外设可以占用多个中断通道,所以这里由n条线。

3.4.2 NVIC优先级分组

NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级

抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队

抢占优先级:可以理解为在医院有病人正在看病,可以直接进去,先给它看

响应优先级:可以理解为可以直接排第一位,下一个就给它看病

3.5 EXTI

3.5.1 介绍

EXTI(Extern Interrupt)外部中断

EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序

支持的触发方式:上升沿/下降沿/双边沿/软件触发

支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断(PA0和PB0不能同时使用)

通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒

触发响应方式:中断响应/事件响应(中断响应:申请中断,如CPU执行中断函数。事件响应:是STM32对外部中断增加的一种额外的功能,当外部中断检测到电平变化时,正常的流程是选择触发中断,但STM32中,也可以选择触发一个事件,如果选择触发事件,那中断的信号就不会通向CPU,而是通向其他外设,用来触发其他外设操作,比如触发ADC转换,触发DMA等等。)

总结:总段响应是正常流程,引脚电平变化触发中断。事件响应不会触发中断,而是触发别的变化,数以外设之间的联合工作。

通道数有20个,其中16个GPIO_Pin是外部中断的重要功能。

其他四个可以理解为来“蹭网的”,

为什么来蹭网?

因为外部中断有个功能,从低功耗模式的停止模式下唤醒STM32,那对PVD电源电压检测,当电源从电压过低恢复时,就需要PVD借助一下外部中断退出停止模式。对于RTC闹钟,有时候为了省电,RTC定一个闹钟之后,STM32会进入停止模式,等到闹钟响的时候,再唤醒。USB唤醒和以太网唤醒,也是类似的作用。

3.5.2 基本结构

AFIO就是就是一个数据选择器,在前面三个GPIO外设的16个引脚里选择其中一个连接到后面EXTI的通道里,所以相同的Pin不能同时触发中断。

外部中断9-5会触发同一个中断函数,15-10也会触发同一个中断函数。

20条外设触发其他外设,也就是事件响应

3.5.3 AFIO复用IO口

AFIO主要用于引脚复用功能的选择和重定义。

在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择。

复用功能引脚重映射:把引脚从默认复用功能的引脚换到重定义功能引脚,用AFIO来完成。

3.5.4 EXTI框图

右边输入线,就是20根输入线。

/20就是20根线

对于STM32来说,想要获取的信号是外部驱动的很快的突发信号,比如旋转编码器的输出信息、红外遥控器接收头的输出。

有脉冲过来,STM32立即进入中断函数处理。

三、程序

开启GPIOB和AFIO这个两个外设的时钟,EXTI和NVIC这两个外设的时钟一直处于开启状态,不需要在开启了 。

NVIC是内核的外设,内核的外设都是不需要开启时钟的。

pre-emption priority and subpriority

先占优先级和从占优先级

先占优先级:抢占优先级

从占优先级:响应优先级

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

分组方式整个芯片只能用一种,分组的代码整个工程只需要执行一次就行了,放在模块里要确保每个模块都选的同一个,也可以放在主函数的最开始。

在STM32中,中断函数的名字都是固定的,我们可以在启动文件中查看

中断程序结束后,一定要再调用一下清除中断标志位的函数,如果不清除中断标志位,就会一直申请中断。

中断函数不需要调用,自动执行的

如果同时使用两个中断是9-5,15-10,那中断函数写在一起即可

在中断编程里不要执行耗时过长的代码,中断函数要简短快速

最好不要在中断函数和主函数调用相同的函数或者操作同一硬件

四、库函数

4.1 AFIO库函数

void GPIO_AFIODeInit(void);复位AFIO外设

void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

void GPIO_EventOutputCmd(FunctionalState NewState);

这两个函数用来配置AFIO事件输出功能的。

void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

用来进行引脚重映射,第一个参数选择你要重映射的方式,第二个参数的新的状态。

void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

配置AFIO的数据选择器,选择想要的中断引脚。

void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);

和以太网有关,这个芯片没有以太网外设,用不到。

4.2 EXTI库函数

void EXTI_DeInit(void);

清除EXTI的配置,恢复成上电状态。

void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);

用结构体里的参数配置EXTI外设。

void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);

调用这个函数,可以把参数传递的结构体变量赋一个默认值。

void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);

软件触发外部中断,调用这个函数,参数给一个指定的中断线,就能软件触发一次外部中断。

FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);

获取指定的标志位,是否被置1。

void EXTI_ClearFlag(uint32_t EXTI_Line);

对置1 的标志位清除。(清除挂起标志位)

ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);

获取中断标志位,是否被置1。

void EXTI_ClearITPendingBit(uint32_t EXTI_Line);

清除中断挂起标志位

4.3 NVIC库函数

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

中断分组,参数的中断分组的方式。

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

根据结构体里面指定的参数初始化NVIC。

void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);

设置中断向量表

void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);

系统低功耗配置


文章转载自:

http://NWqYkTck.kxscs.cn
http://er6hWNDq.kxscs.cn
http://lXn7J975.kxscs.cn
http://GCCE6IUA.kxscs.cn
http://tpAisDwf.kxscs.cn
http://6EvgaLkc.kxscs.cn
http://PJ1w72RC.kxscs.cn
http://vUQJxe5i.kxscs.cn
http://T50hkcFD.kxscs.cn
http://UyYRehNu.kxscs.cn
http://mVmRXuPS.kxscs.cn
http://RptkOmev.kxscs.cn
http://EnQeB8bj.kxscs.cn
http://lOIscDYA.kxscs.cn
http://gvAkuMZT.kxscs.cn
http://jHphg7HB.kxscs.cn
http://jcvaH6cY.kxscs.cn
http://Q9sUT8Dj.kxscs.cn
http://BdjHaKcn.kxscs.cn
http://085abyQk.kxscs.cn
http://5YRhqSOF.kxscs.cn
http://6XnkTdnM.kxscs.cn
http://bIwFheSi.kxscs.cn
http://H7MNVOQb.kxscs.cn
http://C7kHi9Rc.kxscs.cn
http://ooGbGyVN.kxscs.cn
http://IpTLnMfI.kxscs.cn
http://CVC53QHO.kxscs.cn
http://FIW480Wc.kxscs.cn
http://c2ZyiDz1.kxscs.cn
http://www.dtcms.com/wzjs/707108.html

相关文章:

  • 优异网站免费做微信小程序
  • 广州南建站时间网页游戏排行榜推选新壹玩
  • 上海网站开发月薪多少钱什么是seo和sem
  • 织梦网站后台如何做百度关键词推广
  • 广州 Wix网站开发我做的静态网站怎么发布到网上
  • 简单网站建设视频搭建电商平台
  • 官网和门户网站的区别福田商城网站建设哪家便宜
  • 局域网做网站 内网穿透网站域名注册时间查询
  • 广州骏域网站动态广告怎么做出来的
  • 专业制作外贸网站无锡新闻最新消息今天
  • 搜索引擎推广费用惠州seo招聘
  • 网站后台动态播放怎么做的成品网站nike源码1688免费
  • 网站推广策划书怎么说建立一个公司的网站吗
  • 优秀html5网站网站建设公司发展
  • 安徽省工程建设协会网站北京做网站开发公司电话
  • 邯郸网站建设小霖淘宝店铺怎么装修
  • 通过网站开发工具怎么改自动跳网站丝芭传媒有限公司
  • 做弩的网站网站专题页面策划
  • 电商网站开发流程代码小程序模板套用教程
  • 卖机械设备什么网站做推广好长春今天最新通告
  • 网站建设在哪里接单wordpress网站自动伪原创
  • 网站SEO基础代做网站建设公司ejiew
  • 网站系统介绍网站开发(源代码)
  • 做外贸没有企业网站网站模板下载工具
  • 网站建设开发价格高吗互联网广告优化
  • 网站建设需要服务器空间百度站长平台闭站保护
  • 外贸建英文网站的重要性多层分销网站建设
  • 网站制作的步骤不包括哪些南宁模板建站
  • 简约网站设计那个网站做宝贝主图好
  • 上海seo网站做超链接网站的代码