1.基本配置,时钟频率(168MHz)
2.配置硬件FSMC
修改具体配置
(如果是其他板子,需要根据原理图修改引脚,正点原子F103最小系统应该选择A10)
3.使能lcd背光引脚(LCD_BL),该板子是PB15,设置为输出模式
4.配置LED(PF9,PF10)
5.创建文件
6.导入库文件lcd.c
在main.c导入头文件
#include "lcd.h"
#include "stdio.h"
主函数
int main(void)
{
/* USER CODE BEGIN 1 */
uint8_t x=0;
uint8_t lcd_id[12]; //存放LCD ID字符串
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_FSMC_Init();
/* USER CODE BEGIN 2 */
LCD_Init();
POINT_COLOR=RED;
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
while(1)
{
switch(x)
{
case 0:LCD_Clear(WHITE);break;
case 1:LCD_Clear(BLACK);break;
case 2:LCD_Clear(BLUE);break;
case 3:LCD_Clear(RED);break;
case 4:LCD_Clear(MAGENTA);break;
case 5:LCD_Clear(GREEN);break;
case 6:LCD_Clear(CYAN);break;
case 7:LCD_Clear(YELLOW);break;
case 8:LCD_Clear(BRRED);break;
case 9:LCD_Clear(GRAY);break;
case 10:LCD_Clear(LGRAY);break;
case 11:LCD_Clear(BROWN);break;
}
POINT_COLOR=RED;
LCD_ShowString(30,40,210,24,24,"Explorer STM32F4");
LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,lcd_id); //显示LCD ID
LCD_ShowString(30,130,200,12,12,"2017/4/8");
x++;
if(x==12)x=0;
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_10);
HAL_Delay(1000);
}
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
7.修改Optimization,如果不改lcd函数可能会被优化,出现bug(我使用默认Leve 3(-O3),不过还没遇到bug,网上都建议改为(-O0))
8.烧录验证
链接:https://pan.baidu.com/s/15tBOxmWua5qXVKVb1XRa4A
提取码:quvh
--来自百度网盘超级会员V6的分享