实验器材:
MiniSTM32F103开发板V3版本
实验目的:
学习彩色TFTLCD显示屏的使用
硬件资源:
1,DS0(连接在PA8)
2,串口1(波特率:9600,PA9/PA10连接在板载USB转串口芯片CH340上面)
3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过GPIO驱动,连接关系见lcd.h)
实验现象:
本实验利用MiniSTM32开发板连接ALIENTEK TFTLCD模块(除CPLD版本7寸屏模块外,其余所有ALIENTEK的
LCD模块都可以支持),实现TFTLCD模块的显示,下载成功后,通过把LCD模块插入TFTLCD模块接口(靠右
插),按下复位之后,就可以看到LCD模块不停的显示一些信息并不断切换底色。同时该实验会显示LCD驱
动器的ID,并且会在串口打印(按复位一次,打印一次)。
注意事项:
1,4.3寸和7寸屏需要比较大电流,USB供电可能不足,请用外部电源供电(5V电源,接VOUT2即可).
2,本例程在LCD_Init函数里面(在ILI93xx.c),用到了printf,如果不初始化串口1,将导致液晶无法显示!!
3,LCD模块在开发板的LCD接口上面,必须靠右插。
全部源码下载:
应变片.rar
(331.19 KB, 下载次数: 227)
主程序预览:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "hx711.h"
- //ALIENTEK Mini STM32开发板范例代码11
- //TFTLCD显示实验
- unsigned long Read_HX711(void) //读HX711芯片输出的数据。
- {
- unsigned long val = 0;
- unsigned char i = 0;
- GPIO_SetBits(GPIOD,GPIO_Pin_13); //DOUT=1
- GPIO_ResetBits(GPIOD,GPIO_Pin_12); //SCK=0
- while(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_13)); //等待DOUT=0
- delay_us(1);
- for(i=0;i<24;i++)
- {
- GPIO_SetBits(GPIOD,GPIO_Pin_12); //SCK=1
- val=val<<1;
- delay_us(1);
- GPIO_ResetBits(GPIOD,GPIO_Pin_12); //SCK=0
- if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_13)) //DOUT=1
- val++;
- delay_us(1);
- }
- GPIO_SetBits(GPIOD,GPIO_Pin_12);
- val = val^0x800000;
- delay_us(1);
- GPIO_ResetBits(GPIOD,GPIO_Pin_12);
- delay_us(1);
- return val;
- }
- int main(void)
- {
- u8 x=0;
- unsigned long mm;
- u8 lcd_id[12]; //存放LCD ID字符串
- delay_init(); //延时函数初始化
- uart_init(9600); //串口初始化为9600
- LED_Init(); //初始化与LED连接的硬件接口
- LCD_Init();
- POINT_COLOR=RED;
- sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
- while(1)
- {
- mm= Read_HX711();
- 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,200,24,24,"Mini STM32 ^_^");
- 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,"2014/3/7");
- LCD_ShowNum(30,160,mm,8,12);
- x++;
- if(x==12)x=0;
- LED0=!LED0;
- delay_ms(1000);
- }
- }
复制代码
|