完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
移植过来的地方要好好检查一下,尤其是端口的初始化
|
|
|
|
|
|
我的按键在PE4 PF4 上面,我查看没有这样的低级错误,这二天这个问题查了好长时间的
|
|
|
|
|
|
移植至少要知道每一个API的功能。。。
|
|
|
|
|
|
能具体说下需要哪个函数吗?我看正点原子的例程就是这么写的,
|
|
|
|
|
|
中断首先需要各个时钟开启,GPIO功能使能,中断开启,优先级开启.实在找不到,先调试好的代码,查看寄存器,再调试移植有问题的,对比寄存器,看出差异,反过来找函数,就容易了..
|
|
|
|
|
cknz 发表于 2019-5-15 20:03 谢谢,按照这个思路我再查查 |
|
|
|
|
|
void EXT0_IRQHandler(void)
{ if(EXTI_GetITStatus(EXTI_Line0) != RESET) { EXTI_ClearITPendingBit(EXTI_Line0); } } |
|
|
|
|
|
void EXTI4_IRQHandler(void) { delay_ms(10);//消抖 EXTI_ClearITPendingBit(EXTI_Line4); //清除LINE4上的中断标志位 } 我在这里面打断点,无法触发按键没任何响应。。。 |
|
|
|
|
|
牛逼。。。中断里面硬件延时10ms。。。膜拜!!! |
|
|
|
|
|
|
|
|
|
|
|
中断中延时10ms,这个不应该。但是你说的不进中断,那可能另有问题。
void EXTI4_IRQHandler(void) { delay_ms(10);//消抖 EXTI_ClearITPendingBit(EXTI_Line4); //清除LINE4上的中断标志位 } 经过查看你的程序,你的外部中断使能在哪里? EXTI_InitStructure.EXTI_LineCmd = ENABLE; 加上使能试试,见下图。 |
|
|
|
|
|
这个确实没有。但是,正点原子的例子是可以执行的。
后来我比较了下,我发下一个RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); 有这句,中断就能执行,没有的话,原子的例子也不能中断。很奇怪,串口和中断有什么关系? |
|
|
|
|
|
|
|
|
|
|
|
分析了下,还是对硬件不了解,估计对硬件了解就能避免这类问题。。。 |
|
|
|
|
shugan2011 发表于 2019-5-15 21:52 试试这个程序,如果还是不能中断,那说明你的上拉没拉上去,或者管脚坏了。换一个管脚试试。 你不用管原子的是什么样的,可以跑跑官方固件库的样例程序。 |
|
|
|
|
|
非常感谢,你的方法解决了这个问题。谢谢 |
|
|
|
|
|
本帖最后由 toofree 于 2018-4-3 22:05 编辑
解决了就好,以后可以看看官方的固件库样例程序。各种外设,各种用法,能解决你90%的疑问。 英蓓特的Em-STM3210E开发板,与ST官方的开发板STM3210E-EVAL基本兼容,stm32f10x_stdperiph_lib固件库都可以用。经我对比,LCD显示稍有点不一样,SPI Flash空间大小不一样,其余应该是一样的。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:59 , Processed in 1.058495 second(s), Total 102, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1610