完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
配置方法
FSMC接口驱动SSD1963-7寸 TFTLCD 芯片:STM32F103ZET6 引脚: LCD_RS----PF0(FSMC_A0) LCD_CS----PG12(FSMC_NE4) LCD_WR----PD5(FSMC_NWE) LCD_RD----PD4(FSMC_NOE) 时钟:系统时钟配置为72M 操作:通过杜邦线将液晶屏连接到LCD接口上 CubeMX(版本5.2.1)的配置界面: 原理说明 主要讲解下FSMC的具体配置,使用异步模式 A(ModeA)方式来控制 TFTLCD。因为模式 A 支持独立的读写时序控制,这个对我们驱动 TFTLCD 来说非常有用,因为 TFTLCD在读的时候,一般比较慢,而在写的时候可以比较快,如果读写用一样的时序,那么只能以读的时序为基准,从而导致写的速度变慢。而如果有独立的读写时序控制,那么我们只要初始化的时候配置好,之后就不用再配置,既可以满足速度要求,又不需要频繁改配置。 LCD初始化程序可以直接调用原子哥的程序,便可以成功驱动TFTLCD,效果如下图。 调用原子哥LCD初始化程序时,需要注意地址线的使用,原子哥使用的是A10,本文使用的是A0,所以需要以下修改 //地址 #define LCD_REG (volatile uint16_t *)(0x6c000000) #define LCD_RAM (volatile uint16_t *)(0x6c000002) /*写寄存器函数*/ void LCD_WR_REG(uint16_t command) { *LCD_REG = command; } /*写LCD数据函数*/ void LCD_WR_DATA(uint16_t data) { *LCD_RAM = data ; } /*读LCD数据函数*/ uint16_t LCD_RD_DATA(void) { volatile uint16_t data; data = *LCD_RAM; return data; } /*特定寄存器写入特定数据*/ void LCD_WriteReg(uint16_t LCD_Reg,uint16_t LCD_RegValue) { *LCD_REG = LCD_Reg; *LCD_RAM = LCD_RegValue; } /*读寄存器*/ uint16_t LCD_ReadReg(uint16_t LCD_Reg) { LCD_WR_REG(LCD_Reg); delay_us(5); return LCD_RD_DATA(); } //开始写GRAM void LCD_WriteRAM_Prepare(void) { *LCD_REG=lcddev.wramcmd; } //LCD写GRAM void LCD_WriteRAM(uint16_t RGB_Code) { *LCD_RAM = RGB_Code; } 主程序 /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* 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(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ delay_init(); //ÑÓʱº¯Êý³õʼ»¯ LCD_Init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ POINT_COLOR=RED;//ÉèÖÃ×ÖÌåΪºìÉ« LCD_ShowString(60,50,200,16,16,"WarShip STM32"); LCD_ShowString(60,70,200,16,16,"TOUCH TEST"); LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(60,110,200,16,16,"2019/11/05"); LCD_ShowString(60,130,200,16,16,"Press KEY0 to Adjust"); } /* USER CODE END 3 */ } 成功驱动的效果图如下: 本人博客经验尚浅,不足之处请指出,对大家有点帮助的话请鼓励,希望本人分享cubemx哪方面的配置请留言呦! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1553 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1497 浏览 1 评论
925 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
660 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1551 浏览 2 评论
1846浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
603浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
504浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
486浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 07:27 , Processed in 0.759218 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号