AT32F403A開發板是一款功能強大的開發板,將潛能極大地發掘出來才是好的設計,為此,將先前建立在同一強大開發平臺的設計移植它的上面以展示它的性能。 該設計的特點是采用圖標式的界面設計,由于TFT未配置觸摸功能,故以按鍵來輔助功能的選擇,其主界面如圖1所示,功能選擇如圖2所示。
1.jpg (108.58 KB, 下載次數: 64)
下載附件
2020-10-26 19:00 上傳
圖1 主界面
2.jpg (118.37 KB, 下載次數: 83)
下載附件
2020-10-26 19:00 上傳
圖2 功能選擇
1. 電子時鐘 RTC電子時鐘是依靠MCU內部的RTC計時器來實現,其工作界面如圖3所示。
3.jpg (115.22 KB, 下載次數: 78)
下載附件
2020-10-26 19:00 上傳
圖3 電子時鐘
實現RTC顯示功能的程序如下: - LCD_Clear(WHITE);
- show_imageh(10,300,0); //200*200 * 1
- showhanzi16h(60,80,0,0);
- showhanzi16h(60,60,1,0);
- showhanzi16h(60,40,2,0);
- Delay_ms(400u);
- while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pins_0)==0)
- {
- rtc_show_time();
- }
復制代碼 2.溫濕度檢測 借助外掛的DHT22溫濕度傳感器模塊,可對環境的溫濕度進行采集,其顯示效果如圖4所示。
4.jpg (111.17 KB, 下載次數: 79)
下載附件
2020-10-26 19:00 上傳
圖4溫濕度檢測
顯示溫濕度顯示的程序如下: - LCD_Clear(WHITE);
- show_imageh(10,300,0); //200*200 * 1
- while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pins_0)==0)
- {
- senflag=DHT22_Init();
- if(!senflag)
- {
- DHT22_Read_Data(&temperature,&humidity);
- LCD_ShowCharh(100,100,'T',1);
- LCD_ShowCharh(100,90,'e',1);
- LCD_ShowCharh(100,80,'m',1);
- LCD_ShowCharh(100,70,'p',1);
- LCD_ShowCharh(100,60,':',1);
- LCD_ShowCharh(100,50,temperature/10+'0',0);
- LCD_ShowCharh(100,40,temperature%10+'0',0);
- LCD_ShowCharh(120,100,'H',1);
- LCD_ShowCharh(120,90,'u',1);
- LCD_ShowCharh(120,80,'m',1);
- LCD_ShowCharh(120,70,'i',1);
- LCD_ShowCharh(120,60,':',1);
- LCD_ShowCharh(120,50,humidity/10+'0',0);
- LCD_ShowCharh(120,40,humidity%10+'0',0);
- }
- Delay_ms(200u);
- }
復制代碼
3.波形繪制 在配置繪圖函數的基礎上,可完成波形繪制的功能,其繪制3相交流電的波形曲線如圖5所示。
5.jpg (114.45 KB, 下載次數: 61)
下載附件
2020-10-26 19:00 上傳
圖5波形繪制
繪制正弦曲線的參數數組為: unsigned char values[64][2]= { {0x07, 0xFF},{0x08, 0xC8},{0x09, 0x8E},{0x0A,0x51},{0x0B, 0x0F}, {0x0B, 0xC4},{0x0C, 0x71},{0x0D, 0x12},{0x0D,0xA7},{0x0E, 0x2E}, {0x0E, 0xA5},{0x0F, 0x0D},{0x0F, 0x63},{0x0F,0xA6},{0x0F, 0xD7}, {0x0F, 0xF5},{0x0F, 0xFF},{0x0F, 0xF5},{0x0F,0xD7},{0x0F, 0xA6}, {0x0F, 0x63},{0x0F, 0x0D},{0x0E, 0xA5},{0x0E,0x2E},{0x0D, 0xA7}, {0x0D, 0x12},{0x0C, 0x71},{0x0B, 0xC4},{0x0B,0x0F},{0x0A, 0x51}, {0x09, 0x8E},{0x08, 0xC8},{0x07, 0xFF},{0x07,0x36},{0x06, 0x70}, {0x05, 0xAD},{0x04, 0xEF},{0x04, 0x3A},{0x03,0x8D},{0x02, 0xEC}, {0x02, 0x57},{0x01, 0xD0},{0x01, 0x59},{0x00,0xF1},{0x00, 0x9B}, {0x00, 0x58},{0x00, 0x27},{0x00, 0x09},{0x00,0x00},{0x00, 0x09}, {0x00, 0x27},{0x00, 0x58},{0x00, 0x9B},{0x00,0xF1},{0x01, 0x59}, {0x01, 0xD0},{0x02, 0x57},{0x02, 0xEC},{0x03,0x8D},{0x04, 0x3A}, {0x04, 0xEF},{0x05, 0xAD},{0x06, 0x70},{0x07,0x36} }; 此外,它能利用A/D轉換功能對MCU內部的溫度傳感器進行采集,所繪制的溫度曲線如圖6所示,溫度波動值在1度以內。
6.jpg (108.72 KB, 下載次數: 82)
下載附件
2020-10-26 19:00 上傳
圖6 片內溫度采集
4. MP3播放菜單 借助 AT32F403A的串行通訊功能,可通過串口指令來控制MP3音頻播放模塊,圖7是其所實現的中文歌單,以輔助歌曲的選播。
7.jpg (99.31 KB, 下載次數: 71)
下載附件
2020-10-26 19:00 上傳
圖7 歌曲選擇界面
5. 圖片顯示 AT32F403A具有較大的內存,在不做它用的情況下,完全可以支持一張320*240像素的圖片顯示。在借助板載16M FLASH存儲器的情況下,則可實現數碼相框的功能。
8.jpg (114.16 KB, 下載次數: 67)
下載附件
2020-10-26 19:00 上傳
圖8圖片顯示
基于FLASH的圖像顯示程序為: - // 顯示一頁的圖像
- i=0;
- while(i<SPIM_PAGE_SIZE)
- {
- da=WriteBuffer[i];
- da<<=8;
- da|=WriteBuffer[i+1];
- POINT_COLOR=da;
- LCD_DrawPoint(10+((SPIM_ADDR+i)/400),300-((SPIM_ADDR+i)%400)/2);
- i=i+2;
- if((i+SPIM_ADDR)>=80000) goto ok;
- SPIM_ADDR=SPIM_ADDR+4096;
- }
復制代碼 由于其他功能缺少畫面感,就不在此一一加以介紹了,相信由此便可管窺一斑地見識到 AT32F403A開發板的強大。
|