看了几天《精通》书中的第15章“TFTLCD显示实验”例程,始终对TFT_LCD与单片机STM32F407引脚对应关系有些迷糊。下面是书中的介绍:
而例程中LCD初始化函数中,表明的也有限,其中LCD_BL(背光)引脚是PB15,而不是书中说的PB0。
下面是初始化子函数中的部分代码
void LCD_Init(void)
{
RCC->AHB1ENR|=0XF<<3; //使能PD,PE,PF,PG时钟
RCC->AHB1ENR|=1<<1; //使能PB时钟
RCC->AHB3ENR|=1<<0; //使能FSMC时钟
GPIO_Set(GPIOB,PIN15,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU); //PB15 推挽输出,控制背光
GPIO_Set(GPIOD,(3<<0)|(3<<4)|(7<<8)|(3<<14),GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PD0,1,4,5,8,9,10,14,15 AF OUT
GPIO_Set(GPIOE,(0X1FF<<7),GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PE7~15,AF OUT
GPIO_Set(GPIOF,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PF12,FSMC_A6
GPIO_Set(GPIOG,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PG12,FSMC_NE4
GPIO_AF_Set(GPIOD,0,12); //PD0,AF12
GPIO_AF_Set(GPIOD,1,12); //PD1,AF12
GPIO_AF_Set(GPIOD,4,12); //PD4,AF12
GPIO_AF_Set(GPIOD,5,12); //PD5,AF12
GPIO_AF_Set(GPIOD,8,12); //PD8,AF12
GPIO_AF_Set(GPIOD,9,12); //PD9,AF12
GPIO_AF_Set(GPIOD,10,12); //PD10,AF12
GPIO_AF_Set(GPIOD,14,12); //PD14,AF12
GPIO_AF_Set(GPIOD,15,12); //PD15,AF12
GPIO_AF_Set(GPIOE,7,12); //PE7,AF12
GPIO_AF_Set(GPIOE,8,12); //PE8,AF12
GPIO_AF_Set(GPIOE,9,12); //PE9,AF12
GPIO_AF_Set(GPIOE,10,12); //PE10,AF12
GPIO_AF_Set(GPIOE,11,12); //PE11,AF12
GPIO_AF_Set(GPIOE,12,12); //PE12,AF12
GPIO_AF_Set(GPIOE,13,12); //PE13,AF12
GPIO_AF_Set(GPIOE,14,12); //PE14,AF12
GPIO_AF_Set(GPIOE,15,12); //PE15,AF12
GPIO_AF_Set(GPIOF,12,12); //PF12,AF12
GPIO_AF_Set(GPIOG,12,12); //PG12,AF12
我现在没有搞明白TFT液晶屏引脚和STM32F407单片机引脚的对应关系,比如PD0对应的TFT_LCD的引脚是那个,PE13对应的TFT_LCD引脚是那个。常规理解,PD0-PD7应该对应TFT_LCD液晶屏的BD0-BD7,但上面的设置中 PD0-PD15并不是连续使用的,况且中间的PD4和PD5还用作的他用。
一周热门 更多>