完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
程序中目的:通过设置PA10作为中断源,当PA10上升沿时进入中断;
遇到的问题: 1.运行初始化中断配置程序后,我试图用程序直接将PA10置1来进入中断,然而此时不能将PA10置1 (但是放在初始化中断之前可以将PA10置1),故而不能进入中断? 2.这种PA10作为中断源,然后使用软件置1。这种方法是否能实现,或者存在问题呢? 程序代码:(PA10的初始化前面已定义) static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = KEY1_INT_EXTI_IRQ; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void EXTI_Key_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; RCC_AHB1PeriphClockCmd(KEY1_INT_GPIO_CLK,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); NVIC_Configuration(); GPIO_InitStructure.GPIO_Pin = KEY1_INT_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(KEY1_INT_GPIO_PORT, &GPIO_InitStructure); SYSCFG_EXTILineConfig(KEY1_INT_EXTI_PORTSOURCE,KEY1_INT_EXTI_PINSOURCE); EXTI_InitStructure.EXTI_Line = KEY1_INT_EXTI_LINE; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); } void xuantong(int w0, int w1,int w2,int w3,int w4, int z1) { GPIO_SetBits(KEY1_INT_GPIO_PORT,KEY1_INT_GPIO_PIN); //CSÐźÅÖÃ룬ADоƬ׼±¸¹¤×÷ EXTI_Key_Config(); if(w0==1) { EN_enable( 11,w1 ); EN_enable( 12,w2 ); EN_enable( 21,w3 ); EN_enable( 22,w4 ); for(i1=0;i1<15;i1++) { road_enable(21,z2); road_enable(22,z2); Key_port_HIGH(); //此处是将PA10置1的程序,试图将PA10软件置1后,进入中断服务函数 } } } |
|
相关推荐
11个回答
|
|
|
|
|
|
应该是初始化为中断后,自动就变为输入IO了,所以无法置一操作了,我是猜测的。
|
|
|
|
|
|
|
|
应该就是像楼下说的原因吧。所以,无论初始状态是什么都不会发生电平跳变了。
1.使用硬件中断的方法是因为,开始只了解这种中断方法; 2. 您说的软件中断,能简单描述个例子吗, |
|
|
|
STM32的外部中断受EXTI(中断与事件管理器)的管理。有两种方法可以做到软件触发中断。
1.使用NVIC的中断挂起功能,被挂起的中断在不被高优先级中断打断的情况下会立即被执行。 具体方法查阅内核编程手册,NVIC->ISPR寄存器。在CMSIS库里也有相应的库函数。 2.EXTI自带软件触发功能,写一个寄存器就能做到软件触发外部中断。 具体方法查阅芯片的编程手册,EXTI->SWIER寄存器。 另:寄存器是个好东西,学的时候不能太过于依赖库函数。 |
|
|
|
用的时候真没有考虑到会过于依赖库函数,这会让我我无法清楚得认识各个模块的功能
|
|
|
|
可能是初始化设置问题吧。
|
|
|
|
|
|
|
|
学习一下相关经验
|
|
|
|
中断是输入哦,好像是不能设置哦
|
|
|
|
脑袋有点不灵光哦
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1365 浏览 0 评论
国产NSI1300D05-DSWVR放大芯片放大增益8.2或41的问题
1358 浏览 0 评论
STM32串口接受中断使用C++STL中的queue导致所有中断失效
8895 浏览 1 评论
3648 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1580 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 22:45 , Processed in 0.840779 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191