昨晚上卡在晶振的配置文件那里了,
今天理了理思路,才发现按照25mhz的HSE的配置文件,用在板载8MHZ晶振上,也只是把HCLK从168降低到53左右,这样的频率和fsmc的配置(0、0、2)对于ili9481来说正好,
重新替换成8MHZ的HSE的配置文件,HCLK为168,配置FSMC为 4、0、10,可以正常工作了
今天晚上把按键搞定,
一个按键对应液晶屏上的一个位置,会发生闪烁。
使用外部中断方式搞定
配置GPIO时钟和SYSCFG时钟
<pre name="code" class="cpp">RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
<pre name="code" class="cpp"> GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //设置管脚模式为输入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_14;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOE, &GPIO_InitStructure);
<pre name="code" class="cpp"> SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource9);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource14);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource5);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource3);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource6);
</pre><pre name="code" class="cpp"> EXTI_InitStructure.EXTI_Line = EXTI_Line3 | EXTI_Line5 | EXTI_Line6 | EXTI_Line9 | EXTI_Line13 |EXTI_Line14;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* Enable and set EXTI Line0 Interrupt to the lowest priority */
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_Init(&NVIC_InitStructure);
{
if(EXTI_GetITStatus(EXTI_Line13) != RESET)
{
count = 5;
/* Clear the EXTI line 15 pending bit */
EXTI_ClearITPendingBit(EXTI_Line13);
}
else if(EXTI_GetITStatus(EXTI_Line14) != RESET)
{
count = 2;
/* Clear the EXTI line 15 pending bit */
EXTI_ClearITPendingBit(EXTI_Line14);
}
}