stm32配置exti为什么配置stm32f4时钟树配置

&>&STM32F103 EXTI配置问题
STM32F103 EXTI配置问题
上传大小:17KB
EXTI是外部中断/事件控制器,EXTI控制器可以产生高达19个软件事件/中断请求。在这个文件中主要是进行各种初始化配置,包括GPIO配置、EXTI配置、系统时钟配置等。
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
STM32F103 EXTI配置问题
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
STM32F103 EXTI配置问题1,EXTI_InitTypeDef 定义于文件“stm32f10x_exti.h”:
typedef struct
u32 EXTI_L
EXTIMode_TypeDef EXTI_M
EXTIrigger_TypeDef EXTI_T
FunctionalState EXTI_LineC
} EXTI_InitTypeD
void EXTI_Configuration(void)
EXTI_InitTypeDef EXTI_InitS
EXTI_ClearITPendingBit(EXTI_Line2);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource2);
EXTI_ClearITPendingBit(EXTI_Line5);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5);
EXTI_InitStructure.EXTI_Line=EXTI_Line2|EXTI_Line5;
EXTI_ClearITPendingBit(EXTI_Line5);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5);
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_I
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_F
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStructure);
identifier &EXTI_InitTypeDef& is undefined
找不到头文件:eg:identifier &EXTI_InitTypeDef&
外部中断EXTI
外部中断EXTI使用说明
STM32入门学习之EXTI外部中断(STM32F030F4P6基于CooCox IDE)
exti 5~9 中断源区分
关于STM32外部中断EXTI10-15,EXTI5-9共用一个中断向量处理方法
没有更多推荐了,EXTI(外部中断)和NVIC(嵌套向量中断控制器)学习
在STM32中EXTI有0~18个事件/中断,0~4各自都是单独的一个通道,5~9是共一个通道,10~15共享一个通道,16/17/18各自独立用到一个通道
在STM32中NVIC是嵌套向量中断控制器,分为0~4五个组,称之为(Group)
NVIC_PriorityGroup_0
~ NVIC_PriorityGroup_4
库函数里提供的函数NVIC_PriorityGroupConfig(u32 NVIC_PriorityGroup)就是用来配置中断分组的
第0组:所有4位用于指定响应优先级(16种)
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级(8种)
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级(4种)
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级(2种)
第4组:所有4位用于指定抢占式优先级
配置EXTI所用到的GPIO口和相应引脚
配置缺省EXTI
配置线路和中断模式并使能
void exti_init(void){
EXTI_InitTypeDef
EXTI_InitS
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource8);
EXTI_DeInit();
EXTI_InitStructure.EXTI_Line = EXTI_Line8;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_I
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_R
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
设置好中断通道
设置中断主从优先级,这里都是0
中断通道使能
void nvic_init(void){
NVIC_InitTypeDef
NVIC_InitS
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
中断子程序中判断EXTI中断的状态
选择中断源的时候看是Line几
记得清除掉中断产生的条件,否则会一直执行中断
void EXTI9_5_IRQHandler(void)
if(EXTI_GetITStatus(EXTI_Line8) != RESET)
bsp_led_off(1);
EXTI_ClearITPendingBit(EXTI_Line8);
基本过程:
关于NVIC和EXTI详解
STM32中EXTI(外部中断)和NVIC(嵌套向量中断)的关系
STM32 嵌套向量中断控制器NVIC学习
EXTI和NVIC初探
stm32库函数学习篇---NVIC与外部中断
没有更多推荐了,查看: 1660|回复: 0
STM32外部中断配置
此过参考原子的历程,我只是在这里整理了一下。
这里的代码主要分布在固件库的 stm32f10x_exti.h 和 stm32f10x_exti.c文件中?。
STM32F103 的19 个外部中断为:
&&线 0~15:对应外部 IO 口的输入中断。
&&线 16:连接到 PVD输出。
&&线17:连接到 RTC 闹钟事件。
&&线 18:连接到USB唤醒事件。?????
GPIO 的管教 GPIOx.0~GPIOx.15(x=A,B,C,D,E, F,G)分别对应中断线0~15。这样每个中断线对应了最多 7 个 IO 口。如下图:
?????配置GPIO 与中断线的映射关系的函数 GPIO_EXTILineConfig()来实现的,如:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);将中断线2 与 GPIOE 映射起来,。
接下来要初始化中断线上的中断,通过函数EXTI_Init()实现。 ?
然后是设置 NVIC中断优先级?。
最后是编写中断服务函数。?
下面我们再总结一下使用 IO口外部中断的一般步骤:
?1)初始化 IO 口为输入。
GPIO_InitTypeDef GPIO_InitS& & RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
&&//初始化KEY0--&GPIOA.13,KEY1--&GPIOA.15 上拉输入
&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_15;
&&GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU;
&&GPIO_Init(GPIOA,&GPIO_InitStructure);
2) 开启 AFIO时钟
3) 设置 IO口与中断线的映射关系。
& && &GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);?
4) 初始化线上中断,设置触发条件等。
& & EXTI_InitTypeDef& && &&&EXTI_InitS
& & EXTI_InitStructure.?EXTI_Line=EXTI_Line4;
& &&&EXTI_InitStructure.EXTI_Mode= EXTI_Mode_I//中断模式, or EXTI_Mode_Event
& & EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_F//触发方式。or EXTI_Trigger_Risingand EXTI_Trigger_Rising_Falling
& & EXTI_InitStructure.EXTI_LineCmd =ENABLE;
& & EXTI_Init(&EXTI_InitStructure); ?????
5) 配置中断分组(NVIC),并使能中断。
&&NVIC_InitTypeDefNVIC_InitS
?NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//1位抢占优先级,3 位响应优先级?NVIC_InitStructure.NVIC_IRQChannel =EXTI2_IRQn; //使能按键外部中断通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 0x02; //抢占优先级2,NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; //子优先级二NVIC_InitStructure.NVIC_IRQChannelCmd= ENABLE;//使能外部中断通道NVIC_Init(&NVIC_InitStructure);//中断优先级分组初始化???
6)编写中断服务函数。??????
注意:中断线 0-4 每个中断线对应一个中断函数, 中断线5-9 共用中断函数 EXTI9_5_IRQHandler,中断线 10-15 共用中断函数EXTI15_10_IRQHandler。 ?
下面的例子就是中断13和中断15写在一个中断函数中的例程。?
?voidEXTI15_10_IRQHandler(void)
&&delay_ms(10);& &//消抖
& &if(EXTI_GetITStatus(EXTI_Line13) !=RESET)//判断某个线上的中断是否发生
LED0=!LED0;
& & else if (EXTI_GetITStatus(EXTI_Line15) !=RESET)
LED1=!LED1;
EXTI_ClearITPendingBit(EXTI_Line13); //清除EXTI13线路挂起位
EXTI_ClearITPendingBit(EXTI_Line15); //清除EXTI15线路挂起位
Powered by硬件情况:采用PA11管脚
需要明确的是,PxN管脚共用外部中断线EXTIN和外部中断向量EXTIN_IRQn和中断服务程序入口EXTIN_IRQHandler,但是需要注意的是[9...5]共用EXTI9_5_IRQn和EXTI9_5_IRQHandler、[15...10]共用EXTI15_10_IRQn和EXTI15_10_IRQHandler
基本过程:
1、设置时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);注意需要打开AFIO时钟
2、配置GPIO
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);采用浮空输入方式
3、将GPIO管脚与外部中断线连接
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource11);
4、配置EXTI
EXTI_InitStructure.EXTI_Line = EXTI_Line11;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_I
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_F
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);包括触发方式等等
6、配置NVIC
NVIC_InitTypeDef NVIC_InitS
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //PPP外部中断线
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
7、写中断服务程序
void EXTI15_10_IRQHandler(void)
if (EXTI_GetITStatus(EXTI_Line11) != RESET)
EXTI_ClearITPendingBit(EXTI_Line11);//清除标志
关于STM32外部中断EXTI10-15,EXTI5-9共用一个中断向量处理方法
【stm32f407】外部中断实现按键中断方式
外部中断EXTI的配置注意事项
STM32入门学习之EXTI外部中断(STM32F030F4P6基于CooCox IDE)
外部中断EXTI
【读书笔记】EXTI外部中断 实例
STM32 外部GPIO中断配置
exti 5~9 中断源区分
没有更多推荐了,

我要回帖

更多关于 stm32系统时钟配置 的文章

 

随机推荐