AT32F403A开发板是一款功能强大的开发板,将潜能极大地发掘出来才是好的设计,为此,将先前建立在同一强大开发平台的设计移植它的上面以展示它的性能。
该设计的特点是采用图标式的界面设计,由于TFT未配置触摸功能,故以按键来辅助功能的选择,其主界面如图1所示,功能选择如图2所示。
图1 主界面
图2 功能选择
1. 电子时钟
RTC电子时钟是依靠MCU内部的RTC计时器来实现,其工作界面如图3所示。
图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温湿度检测
显示温湿度显示的程序如下:
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波形绘制
绘制正弦曲线的参数数组为:
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 片内温度采集
4. MP3播放菜单
借助 AT32F403A的串行通讯功能,可通过串口指令来控制MP3音频播放模块,图7是其所实现的中文歌单,以辅助歌曲的选播。
图7 歌曲选择界面
5. 图片显示
AT32F403A具有较大的内存,在不做它用的情况下,完全可以支持一张320*240像素的图片显示。在借助板载16M FLASH存储器的情况下,则可实现数码相框的功能。
图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; }
复制代码