历史上的今天
今天是:2025年01月15日(星期三)
2019年01月15日 | STM32中NVIC_Init导致的上电程序不运行
2019-01-15 来源:eefocus
最近使用在STM32上使用ucosii的运行多任务时候遇到一个奇怪问题,我用到了4个串口,随着程序增大,出现了上电后不运行的情况,我用一个LED闪烁指示运行,使用STLINK进行debug没有问题,但重新上电运行就不行,硬件复位了也不行,排除了硬件问题、指针跑飞、任务堆栈溢出、卡死在某死循环 等可能性后,怀疑是哪句初始化问题,就屏蔽了所有初始化语句(LED的IO口配置除外),最后定位在一个串口的NVIC初始化语句上。
void open_usart_wireless(u32 bound)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2,ENABLE);
//USART2_TX GPIOA.9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);//
//USART2_RX GPIOA.10
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//
GPIO_Init(GPIOA, &GPIO_InitStructure);//
//Usart2 NVIC ÅäÖÃ
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 3 ;//
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //
NVIC_Init(&NVIC_InitStructure); //1、屏蔽这一句程序就可以上电正常运行,这个进行了多次试验过,屏蔽就好,不屏蔽就不运行
USART_InitStructure.USART_BaudRate = bound;//
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//
USART_InitStructure.USART_StopBits = USART_StopBits_1;//
USART_InitStructure.USART_Parity = USART_Parity_No;//
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //
USART_Init(USART2, &USART_InitStructure); //
USART_ClearITPendingBit(USART2,USART_IT_RXNE);//2、在没有屏蔽1、的情况下添加这一句,程序也可以上电正常运行,反复上电都正常
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//
USART_Cmd(USART2, ENABLE);
}
通过上网搜索“STM32不运行 NVIC_Init ”,看到有位朋友在论坛发帖求助,情况和我类似,最后他自己解决了,就是要清一下中断,然后我也在初始化中添加了清串口接收中断,果然就可以了。我记得在谁家的例程里我也看到过这样的操作,初始化里清一下串口接收中断,可能是芯片是一个bug。从道理上来说这个问题说不通,遇到这种情况的人也许不多,如果有遇到了类似情况的看到这个希望能有所启发。
史海拾趣
|
常见电源问题征集帖。。。汇聚于此贴,各个击破 疑问者,把您们的问题描述出来高手者,把您们的思路敲打出来灌水者,把您的精力放在学习上 问题集中,集中问题集中解决集中的问题 有问题的请到此处呐喊吧,相信您的疑问会被更快的解决   ...… 查看全部问答> |
|
推荐下载--Windows Embedded的微软认证技术专家(MCTS)及认证免费中文简体版备考工具包 http://topic.eeworld.net/u/20091125/21/fb074b0c-ad66-494c-aea5-c8137fe77582.html?seed=867673799&r=61440219#r_61440219 请过了的大虾们多多讲点备考 ...… 查看全部问答> |
|
我有一个access 的a.mdb 文件,通过active sync 下载到 wince 开发板 转换成 a.cdb 转换成功, 再转换回 .mdb 也没错误,没乱码,但就是执行sql查询 select * from [tabname] 时出现问题 调用查询 create table abc ( id int ); 也没问题 //里面原 ...… 查看全部问答> |
|
半导体照明与一般光伏电源配用的节能灯泡相比具有节能、长寿、安全、环保、色彩丰富、体积小、耐闪烁、可靠性高、调控方便等诸多优点。发光二极管作为一种新型照明光源正在获得越来越广泛的应用。 一、半导体照明特点 电子元件二极管中半 ...… 查看全部问答> |
|
谁有应用经验? IAR发布EWSTM8后,并没有见到其提供的标准例程框架,就像EWSTM32那样的标准工程框架,启动文件、CONF文件等都没有提供,哪位先烈能介绍下在EWSTM8下的应用经验?… 查看全部问答> |




