



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GPIO端口复用为外部中断信号输入端,控制PA1端口电平变化,使用MDKE_inter.c 代码如下,其它使用keil自带的文件#include stm32f10x_lib.hvoid RCC_cfg() /时钟设置 /打开PA端口时钟,由于GPIO用作中断输入,属于端口复用,故也需要打开复用时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);void NVIC_cfg() /设置中断 NVIC_InitTypeDef NVIC_InitStructure; /定义结构体变量 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /选择中断分组2,3个中断源,需2bit进行优先级设置 /高两位用于设置抢占式 优先级; /低两位用于设置响应式 优先级 NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQChannel; /选择中断通道2 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /抢占式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /响应式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /使能中断 NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel; /选择中断通道3 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /抢占式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /响应式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /使能中断 NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel; /选择中断通道5 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /抢占式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /响应式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /使能中断 NVIC_Init(&NVIC_InitStructure);void IO_cfg() /GPIO初始化 GPIO_InitTypeDef GPIO_InitStructure; /定义结构体变量 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; /选择使用的引脚 PA1做led指示 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /设置端口翻转速度 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /设置端口工作模式 推挽输出 GPIO_Init(GPIOA,&GPIO_InitStructure); /初始化PA.1引脚 GPIO_ResetBits(GPIOA,GPIO_Pin_1); /将PA.1引脚设置为低电平输出,LED灯灭 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5; /选择引脚2 3 5 作为中断信号输入端 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; /选择输入模式为浮空输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /输出频率最大50MHz GPIO_Init(GPIOA,&GPIO_InitStructure); /设置PA.2 /PA.3 /PA.5/由于GPIO并不是专用的中断引脚,因此在用GPIO来触发外部中断的时候需要设置将GPIO相应的引脚和中断线连接起来void EXTI_cfg() /将相应的IO口与中断线路进行连接 EXTI_InitTypeDef EXTI_InitStructure; /定义结构体变量 EXTI_ClearITPendingBit(EXTI_Line2); /清空中断标志 PA.2 中断口 EXTI_ClearITPendingBit(EXTI_Line3); / PA.3 中断口 EXTI_ClearITPendingBit(EXTI_Line5); / PA.5 中断口 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource2); /选择中断管脚PA.2 PA.3 PA.5 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource5); EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3 | EXTI_Line5; /选择中断线路2 3 5 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /设置为中断请求,非事件请求 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; /设置中断触发方式为上下降沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE; /外部中断使能 EXTI_Init(&EXTI_InitStructure);int main() RCC_cfg(); /设置时钟 IO_cfg(); /GPIO设置 NVIC_cfg(); /中断管理设置 EXTI_cfg(); /GPIO与中断线路的连接 while(1); /文件说明:/库函数的默认路径为: .keilarmrv31libststm32f10x/1:时钟设置,使用库文件stm32f10x_rcc.c/2:中断管理,使用库文件stm32f10x_nvic.c ;/ 另cortexm3_macro.s 为中断管理库文件所需 ,为内核中特殊的指令操作/3:GPIO设置,使用库文件stm32f10x_gpio.c/4:GPIO与中断线路的连接,使用库文件stm32f10x_exti.c/5:中断函数,位于 stm32f10x_it.c 中,具体的中断操作代码如下:(找到具体的函数位置,将如下函数体写入中断函数内)/*void EXTI2_IRQHandler(void) /PA.2中断信号的响应函数 抢占优先级:0/响应优先级:0 GPIO_SetBits(GPIOA,GPIO_Pin_1); /将PA.1端口置位,点亮LED EXTI_ClearITPendingBit(EXTI_Line2); /清空中断标志位,防止持续进入中断void EXTI3_IRQHandler(void) /PA.3中断信号的响应函数 抢占优先级:0/响应优先级:0 GPIO_ResetBits(GPIOA,GPIO_Pin_1);/将PA.1端口清零,熄灭LED EXTI_ClearITPendingBit(EXTI_Line3);void EXTI9_5_IRQHandler(void)/PA.5中断信号的响应函数 抢占优先级:0/响应优先级:0 u8 ReadValue; /定义 存储端口状态 的变量 ReadValue = GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_1);/读取PA1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养师考试冲刺试卷:实操技能与心理营养深度解析
- 新能源汽车发展前景
- 深层搅拌桩软基处理施工方案
- 2025年东北师范大学教师教育研究院春季学期专任教师招聘7人考前自测高频考点模拟试题及答案详解(新)
- 2024计算机四级考前冲刺练习试题及答案详解【夺冠】
- 2024计算机四级考前冲刺练习及答案详解【考点梳理】
- 2025临床执业医师测试卷(名校卷)附答案详解
- 2024-2025学年自考专业(计算机网络)考试彩蛋押题含答案详解(完整版)
- 2024自考专业(建筑工程)考试黑钻押题含答案详解(培优A卷)
- 2024-2025学年度广播电视播音员主持人能力提升B卷题库附参考答案详解【能力提升】
- 供水工程成本预算与动态控制方案
- 护栏供应及安装合同范本
- 2025年反假货币试题题库及答案
- 现房与期房培训课件
- 2024年仙桃市高新技术产业投资有限公司招聘笔试真题
- 汽车知识培训讲师简介课件
- 2025年教师职称-浙江-浙江教师职称(基础知识、综合素质、初中信息技术)历年参考题库典型考点含答案解析
- 北京高校标准化食堂标准(2026版)讲解
- 专题1.4数学归纳法(高效培优讲义)
- 卒中后抑郁症的中医治疗
- 泸州北方化学工业有限公司锅炉烟气脱硫脱硝除尘技改项目环评报告
评论
0/150
提交评论