本帖最后由 jennyzhaojie 于 2025-2-1 11:45 编辑
在广泛收集资料的情况下,对MIKROE TFT-PROTO Board的使用终于有所突破,初步实现了该显示屏的显示驱动。
该显示板是使用3.3V电源,其背光LED需要一个5欧的电阻来限流。使用可两个10欧电阻并联得到。
该显示板所提供的接口可支持以16位、8位、18位、9位或SPI模式来驱动。
在大多数情况下,出于不想过多占用I/O资源的原因,多是采用SPI模式驱动。
模式的设置是通过IMx引脚来实现,即IM0、IM1、IM3接GND,IM2接3.3V。
在该模式下,只需要三个SPI信号引脚及一个CS片选和一个复位信号,总共5个引脚。
其中,RST复位信号是由开发板的复位引脚提供,至于WR和FMARK信号则未使用,其接口电路基本如图1所示,个别之处有所调整。
图1 接口电路
该显示屏的引脚排列如图2所示,其内部电路如图3所示。
图2 引脚排列
图3 内部电路
为驱动该显示屏,是以N32A455开发板来驱动其实现显示。
该显示屏与开发板的连接关系为:
CS --PE2
MOSI --PE4
CLK --PE3
BLC --PE6
RST ---RST
对所用引脚的配置函数为:
- void LCD_config(void)
- {
- GPIO_InitType GPIO_InitStructure;
- RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOE, ENABLE);
- GPIO_InitStructure.Pin =GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitPeripheral(GPIOE, &GPIO_InitStructure);
- }
-
以模拟SPI方式方式字节数据的函数为:
- void send_byte(uint8_t data)
- {
- uint8_t count;
- for(count = 0; count < 8; count++)
- {
- CLR_CLK();
- delay2();
- if(data & 0x80)
- {
- SET_SDA();
- }
- else
- {
- CLR_SDA();
- }
- delay2();
- data <<= 1;
-
- SET_CLK();
- delay2();
- }
- }
-
对显示屏的初始化函数为:
以色彩清除屏幕的函数为:
- void ili9341_clear(int c)
- {
- uint32_t index=0;
- set_cursor(0x00, 0x0000);
- gram_prepare();
- for(index = 0; index < (320*240); index++)
- {
- write_data(c >> 8);
- write_data(c);
- }
- }
-
进行驱动测试的主程序为:
- int main(void)
- {
- LCD_config();
- ili9341_init();
- ili9341_clear(RED);
- while (1);
- }
-
经程序的编译和下载,其测试效果如图4所示,说明驱动成功!
图4 测试效果
新年啦,还是献上一份年味浓浓的画面来增添喜悦的氛围吧!祝大家社区越办越好,大家万事如意!