實驗器材:
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接口上面,必須靠右插。
0.png (49.92 KB, 下載次數: 131)
下載附件
2017-3-20 03:13 上傳
全部源碼下載:
應變片.rar
(331.19 KB, 下載次數: 227)
2017-3-20 03:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主程序預覽:
- #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);
- }
- }
復制代碼
|