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

南昌珠峰网站建设刘淼 网站开发

南昌珠峰网站建设,刘淼 网站开发,营销网站建设一薇,网络营销的理论和特点有哪些增强版实验简介 EXTI5和EXTI9共享一个中断源 下面的类似 EXTI0到4各自拥有一个中断源 改变引脚 PA0和PA1改变为PA5 和PA6 EXTI的重映射 之前是把PA0映射到EXTI0 PA1映射到EXTI1上 现在是要把PA5和PA6分别映射到EXTI5和6上 EXTI进行初始化 NVIC初始化 编写中断函数 因为EXTI…

增强版实验简介
在这里插入图片描述
EXTI5和EXTI9共享一个中断源 下面的类似 EXTI0到4各自拥有一个中断源
改变引脚 PA0和PA1改变为PA5 和PA6在这里插入图片描述
EXTI的重映射
在这里插入图片描述
之前是把PA0映射到EXTI0 PA1映射到EXTI1上 现在是要把PA5和PA6分别映射到EXTI5和6上
EXTI进行初始化在这里插入图片描述
NVIC初始化
在这里插入图片描述
编写中断函数
在这里插入图片描述
因为EXTI5和6都可以触发同一个中断源 所以要判断到底是哪一个触发的 就要去查中断挂起寄存器的值 如果是第一个为1就是EXTI5触发的 如果是第二个为1那就是EXTI6触发的

#include "stm32f10x.h"
#include "stm32f10x_pal.h"int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);PAL_Init();// 1. 初始化IO引脚// 将PA0和PA1分别设置为输入上拉模式// 开启GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// PA0, PA1GPIO_InitTypeDef GPIOInitStruct;GPIOInitStruct.GPIO_Pin  = GPIO_Pin_5 | GPIO_Pin_6;GPIOInitStruct.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIOInitStruct);// 2. 配置EXTI的引脚映射// 开启AFIO的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);// PA0 -> EXTI0GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource5);// PA1 -> EXTI1GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource6);// 3. 初始化EXTI// 3.1. 初始化EXTI5EXTI_InitTypeDef EXTIInitStruct;EXTIInitStruct.EXTI_Line = EXTI_Line5;EXTIInitStruct.EXTI_Mode = EXTI_Mode_Interrupt;EXTIInitStruct.EXTI_Trigger = EXTI_Trigger_Rising;EXTIInitStruct.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTIInitStruct);// 3.2. 初始化EXTI6EXTIInitStruct.EXTI_Line = EXTI_Line6;EXTIInitStruct.EXTI_Mode = EXTI_Mode_Interrupt;EXTIInitStruct.EXTI_Trigger = EXTI_Trigger_Rising;EXTIInitStruct.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTIInitStruct);// 4. 初始化NVICNVIC_InitTypeDef NVICInitStruct;// 4.1. EXTI0 EXTI5,EXTI6共用一个中断源 写一个就可以了NVICInitStruct.NVIC_IRQChannel = EXTI9_5_IRQn;NVICInitStruct.NVIC_IRQChannelPreemptionPriority = 0;NVICInitStruct.NVIC_IRQChannelSubPriority = 0;NVICInitStruct.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVICInitStruct);// 5. 初始化PC13RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIOInitStruct.GPIO_Pin = GPIO_Pin_13;GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_OD; // Open-drainGPIOInitStruct.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(GPIOC, &GPIOInitStruct);while(1){}
}void EXTI9_5_IRQHandler(void)
{if(EXTI_GetITStatus(EXTI_Line5)==SET) // EXTI5触发的中断{//清除中断源EXTI_ClearITPendingBit(EXTI_Line5);//点灯GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);}if(EXTI_GetITStatus(EXTI_Line6)==SET)  //EXTI6触发的中断{//清除中断源EXTI_ClearITPendingBit(EXTI_Line6);//灭灯GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);}	
}

EXTI的PAL库编程

标准库编程的不足
在这里插入图片描述
初始化IO引脚就要使能GPIOA和C的时钟调用GPIO_Init函数初始化GPIOA GPIOC的引脚 输入还是输出模式 输出的速度(输入就不用设置) 然后IO引脚的重映射 使能AFIO的时钟调用函数GPIO_EXTILineConfig把PA5和PA6分别映射到EXTI5 EXTI6上去 然后再初始化EXTI 调用EXTI INIT函数 EXTI的通道 EXTI的模式(事件还是中断模式)等等 然后还要初始化NVIC 还要查明中断来自于那个通道 (因为PA5和PA6是共用中断源 要是是PA1和PA0就各自用中断源 无需判断中断来自于那个通道)
PAL库编程接口简介
在这里插入图片描述
EXTI PAL库 编程分为三个部分
在这里插入图片描述
在这里插入图片描述
填写初始化参数初始化了一切就是没有关闭中断屏蔽
使能EXTI的通道就是闭合中断屏蔽
编写中断响应函数
在这里插入图片描述
在标准库中我们是使用弱方法 覆盖掉函数名 在中断函数中我们查询了中断挂起位的值(分辨到底是那个PA5还是PA6引起的触发中断)还清除了中断 在PAL库中只需要调用一个函数接口就可以完成这两件事

http://www.yayakq.cn/news/302254/

相关文章:

  • 怎么利用wordpress管理站点网站开发公司长春
  • 微网站开发案例淄博seo怎么选择
  • 承德网站开发网站建设流程 知乎
  • 免费建站哪家好如何查看一个网站是用什么程序做的
  • 切图做网站如何做做网站需要购买网站空间吗
  • 上海网站建设服务站霸网络企业网站开发研究现状
  • 汕头网站建设开发专业网站开发哪家公司好
  • 哈尔滨服务专业的建站南磨房网站建设公司
  • 集团网站设计方案企业形象设计vi手册
  • 物流公司在哪做网站如何网上开店卖东西
  • 站长 网站ipthinkphp5菜鸟教程
  • 做任务网站有哪些内容wordpress密码正确登录不
  • 响应式网站 拖拽买购网中国10大品牌网
  • 蓝海国际版网站建设凡科网上商城
  • 个人业余做网站怎么弄建立网站定制
  • 营销型网站页面布局北京市地铁建设公司网站
  • 交易网站开发合同网站设计网页首页介绍
  • 那些公司做网站比较厉害网站建设xyhlrj
  • 我的网站搜索不到了wordpress kvstore
  • 怎么查网站死链酷家乐在线家装设计
  • 自应式网站沈阳关键词搜索排名
  • 海口建站模板厂家寺庙网站模板
  • 阳江网梁国燊事件长沙网站优化方式
  • 陕西省建设银行网站emloh转wordpress
  • 宁夏建设工程招标投标信息管理中心网站广州科 外贸网站建设
  • 郑州做设计公司网站厦门谷歌seo公司
  • 网站平台建设合同模版汽车营销策划方案ppt
  • 网站设计需要哪些技术手机版oa
  • 图书馆网站的建设的重要性物业管理系统和物业管理软件
  • 合肥市做网站多少钱dedecms网站模板下载