stm32串口空闲中断1中断问题

奋斗版STM32开发板例程详解—串口1 中断实验-资料共享-电子开发网资料共享
&nbsp&nbsp
当前位置: &&
奋斗版STM32开发板例程详解—串口1 中断实验
奋斗版STM32开发板例程详解—串口1 中断实验
资料格式:&&rar
作者/开发商:&&
资料大小:&&1.82 MB
资料语言:&&简体中文
资料平台:&&Windows
软件类别:&&源码
相关地址:&&
评分等级:&&★★★★★
发布人:&&&
下载次数:&&2222
JLinkArm_STM3210B-EVAL.ini
JLinkLog.txt
STM32-FD-USART1DEMO.Opt
STM32-FD-USART1DEMO.Uv2
STM32-FD-USART1DEMO_Opt.Bak
STM32-FD-USART1DEMO_STM32-USART1.dep
STM32-FD-USART1DEMO_STM3210B-EVAL.dep
STM32-FD-USART1DEMO_Uv2.Bak
奋斗STM32开发板串口1中断例程详解及实验手册.pdf
user\main.c
user\platform_config.h
user\stm32f10x_it.c
user\stm32f10x_it.h
startup\cortexm3_macro.s
startup\startup_stm32f10x_hd.s
startup\startup_stm32f10x_ld.s
startup\startup_stm32f10x_md.s
startup\stm32f10x_startup.s
List\startup_stm32f10x_hd.lst
List\STM32_FD_USART1.map
FWlib\SRC\misc.c
FWlib\SRC\stm32f10x_adc.c
FWlib\SRC\stm32f10x_bkp.c
FWlib\SRC\stm32f10x_can.c
FWlib\SRC\stm32f10x_cec.c
FWlib\SRC\stm32f10x_crc.c
FWlib\SRC\stm32f10x_dac.c
FWlib\SRC\stm32f10x_dbgmcu.c
FWlib\SRC\stm32f10x_dma.c
FWlib\SRC\stm32f10x_exti.c
FWlib\SRC\stm32f10x_flash.c
FWlib\SRC\stm32f10x_fsmc.c
FWlib\SRC\stm32f10x_gpio.c
FWlib\SRC\stm32f10x_i2c.c
FWlib\SRC\stm32f10x_iwdg.c
FWlib\SRC\stm32f10x_pwr.c
FWlib\SRC\stm32f10x_rcc.c
FWlib\SRC\stm32f10x_rtc.c
FWlib\SRC\stm32f10x_sdio.c
FWlib\SRC\stm32f10x_spi.c
FWlib\SRC\stm32f10x_tim.c
FWlib\SRC\stm32f10x_usart.c
FWlib\SRC\stm32f10x_wwdg.c
FWlib\SRC\system_stm32f10x.c
FWlib\inc\misc.h
FWlib\inc\stm32f10x_adc.h
FWlib\inc\stm32f10x_bkp.h
FWlib\inc\stm32f10x_can.h
FWlib\inc\stm32f10x_cec.h
FWlib\inc\stm32f10x_conf.h
FWlib\inc\stm32f10x_crc.h
FWlib\inc\stm32f10x_dac.h
FWlib\inc\stm32f10x_dbgmcu.h
FWlib\inc\stm32f10x_dma.h
FWlib\inc\stm32f10x_exti.h
FWlib\inc\stm32f10x_flash.h
FWlib\inc\stm32f10x_fsmc.h
FWlib\inc\stm32f10x_gpio.h
FWlib\inc\stm32f10x_i2c.h
FWlib\inc\stm32f10x_iwdg.h
FWlib\inc\stm32f10x_pwr.h
FWlib\inc\stm32f10x_rcc.h
FWlib\inc\stm32f10x_rtc.h
FWlib\inc\stm32f10x_sdio.h
FWlib\inc\stm32f10x_spi.h
FWlib\inc\stm32f10x_tim.h
FWlib\inc\stm32f10x_usart.h
FWlib\inc\stm32f10x_wwdg.h
CM3\core_cm3.c
CM3\core_cm3.h
CM3\stm32f10x.h
CM3\system_stm32f10x.c
CM3\system_stm32f10x.h
&(需要下载点0点)()2被浏览1259分享邀请回答0添加评论分享收藏感谢收起写回答查看: 7890|回复: 5
请教一下关于串口中断和外中断合用的问题
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间2 小时
STM32F103,4路串口中断接受没有问题,单测外部中断也没有问题,放在一起的时候,出问题了,外中断能影响串口中断(选用的是下降沿中断,单侧是没有问题的,和串口中断在一起的时候,发现串口丢数据了,而且在按键没有抬起时,串口不能接受了,在主循环里一个流水等也不流了)反复改NVIC里的中断优先级了,4路串口在0MS定时发送500字节左右,都能正确响应(中断函数里就是收到什么在回发出来),同时定时器里控制灯闪和主程序里流水也没问题。好几天了,哪位给指教一下,对NVIC里的优先级什么的搞的云里雾里的,呵呵要求外中断级别是最低的,不能影响串口
俺在线等结果呢,在好几个群里发了问,都无人回应!!
5d9f86b80df6cca8dcfcbce_143.jpg (0 Bytes, 下载次数: 0)
22:54 上传
9b1f5bcdaf6b06e0aea.jpg (0 Bytes, 下载次数: 0)
22:54 上传
void& EXTI_Configuration(void)
&EXTI_InitTypeDef& EXTI_InitS
/*********************外部中断0配置*************************/
& &GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1); //把PA.0设置为外部中断0
& &EXTI_DeInit();&&&& //将EXIT寄存器重设置为缺省值
&&&EXTI_InitStructure.EXTI_Line = EXTI_Line1;& //设置外部中断线0
& &EXTI_InitStructure.EXTI_Mode = EXTI_Mode_I//EXTI_Mode_I EXTI_Mode_Event //设置EXTI线路为重点请求
& &EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_F& //设置输入线路为下降沿为中断请求
& &EXTI_InitStructure.EXTI_LineCmd = ENABLE;&& //中断使能
& &EXTI_Init(&EXTI_InitStructure);&
& &//EXTI_GenerateSWInterrupt(EXTI_Line1);
void NVIC_Configuration(void)
&NVIC_InitTypeDef NVIC_InitS
#ifdef& VECT_TAB_RAM&
& &/* Set the Vector Table base location at 0x */
& &NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else& /* VECT_TAB_FLASH& */
& &/* Set the Vector Table base location at 0x */
& &NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);&&
&&NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);&// 设置先占优先级2位,从优先级2位 ;
& &// Enable the TIM2 global Interrupt
& &NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQC& // TIM2 全局中断
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 先占优先级 0 ;
& &NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;& // 从优先级 0 ;
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;&// IRQ通道被使能 ;
& &NVIC_Init(&NVIC_InitStructure);
&&// Enable the TIM3 Interrupt
& &NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQC // TIM3 全局中断
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 先占优先级 1 ;
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; // 先占优先级 0 ;
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;&// IRQ通道被使能 ;
& &NVIC_Init(&NVIC_InitStructure);
&&NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQC& // USART1 全局中断 ;
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
& &NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& &NVIC_Init(&NVIC_InitStructure);
&&NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQC& // USART2 全局中断 ;
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
& &NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& &NVIC_Init(&NVIC_InitStructure);
& &NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQC& // USART3 全局中断 ;
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4;
& &//&NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& &NVIC_Init(&NVIC_InitStructure);
& &NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQC& // USART4 全局中断 ;
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;
& &//NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5;
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& &NVIC_Init(&NVIC_InitStructure);
& &&/*& */
&&NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQC//EXTI0_IRQC//设置外部中断0
& &NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//主优先级为4
& &NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//从优先级为4
& &NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//中断使能
& &NVIC_Init(&NVIC_InitStructure);
void USART2_IRQHandler(void)
&u8 mm,i,p,n;
&if(USART_GetITStatus(USART2, USART_FLAG_ORE) != RESET)
&&&&mm=(u8)(USART_ReceiveData(USART2));
&&&&USART_SendData(USART2,mm);
void UART4_IRQHandler(void)
&u8 mm,i,p,n;
&//USART_SendData(USART1,'&');
&if(USART_GetITStatus(UART4, USART_FLAG_RXNE) != RESET)
&&&&mm=(u8)(USART_ReceiveData(UART4));
&&&&USART_SendData(UART4,mm);
&//USART_SendData(USART1,'&');
最开始调试的时候在中断里一直判断这个USART_FLAG_RXNE,后来在把4个串口都打开的时候在判断这个不行了,程序一直在这个中断里不出来,所以就判断USART_FLAG_ORE这个,目前串口还没问题,这个我稍后在查
主题帖子精华
金钱117111
在线时间898 小时
你的分组完全乱了.
好好看看中断分组.
组1,只有1位抢占优先级.所以抢占优先级要嘛是1,要嘛是0.
&你看看你的设置...
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间2 小时
回复【2楼】正点原子:
---------------------------------
从0&到4&我都实验过
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间2 小时
回复【2楼】正点原子:
---------------------------------
您给说个数吧,我按照这个数填上好用了我在理解一下,您给说个数吧,能把串口1中断高于外中断就可以,其他的不先不管,我实验一下
主题帖子精华
金钱117111
在线时间898 小时
组1.
抢占0,sub0&sub1&sub2&sbu3...&sub7,
抢占1,sub0&sub1&sub2&sub3...&sub7
而抢占0&抢占1.
所以(0,x)&(1,x)
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间2 小时
回复【5楼】正点原子:
---------------------------------
谢谢原子兄,我实验一下,呵呵
Powered by- amoBBS 阿莫电子论坛
后使用快捷导航没有帐号?
现在就登录 - amoBBS 阿莫电子论坛 手机版
立即使用手机访问,获得极速移动体验
/forum.php
您可以通过手机快速访问论坛版块及管理收藏夹,随时随地访问自己最爱的内容
看帖及回帖更快速
通过手机版,可以快速的访问您需要阅读的主题,并可以快速的发布新帖及回复
站内短信实时收发,与短信另一端的朋友进行单人或多人聊天
节省流量与获得优质手机体验并存
阿莫电子论坛, 原"中国电子开发网"关于stm32串口莫名进入中断问题 - ARM单片机 - 电子工程世界网
关于stm32串口莫名进入中断问题
14:07:32来源: eefocus 关键字:&&&&
输出,全速执行时老是入口地址处,如果把中断函数屏蔽掉,全速执行时显示执行B,表示找不到中断入口地址,然后打开中断函数,则又死掉,通过把发送中断使能关闭则显示正常。所以:1、相应串口中断使能的话,必须得对应有中断函数,如果用不到中断函数,也必须有中断函数名,不然会提示找不到中断函数入口地址。2、如果莫名出现死在中断函数入口地址处,则可能是发送中断使能了,关闭发送中断使能即可。
关键字:&&&&
编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。}

我要回帖

更多关于 stm32串口中断出问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信