资深版主
- 积分
- 4306
- 金钱
- 4306
- 注册时间
- 2018-6-30
- 在线时间
- 808 小时
|
本帖最后由 1208 于 2019-3-26 19:35 编辑
1)LCD例程实验
屏蔽掉串口初始化函数,这样会导致程序不能正常运行
因为这是LCD里面调用了printf
[mw_shl_code=c,true] u8 x=0;
u8 lcd_id[12]; //存放LCD ID字符串
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
//uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
LCD_Init();
POINT_COLOR=RED;
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。 [/mw_shl_code]
可以将LCD.c里面printf屏蔽掉,即使将串口初始化屏蔽掉也不影响
2)外部中断实验
当使能中断被屏蔽掉,且中断的初始化在串口的初始化前面就容易导致中断运行不了
[mw_shl_code=c,true] GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource3);
EXTI_InitStructure.EXTI_Line=EXTI_Line3;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
//EXTI_InitStructure.EXTI_LineCmd=ENABLE; //使能中断
EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器[/mw_shl_code]
解决办法:串口的初始化放在中断前面,就可以先使能中断
|
|