//显示曲目索引 //index:当前索引 //total:总文件数 void audio_index_show(u16 index,u16 total) { //显示当前曲目的索引,及总曲目数 LCD_ShowxNum(60+0,230,index,3,16,0X80); //索引 LCD_ShowChar(60+24,230,'/',16,0); LCD_ShowxNum(60+32,230,total,3,16,0X80); //总曲目 }
int main(void) { u16 adcx; float temp; delay_init(); //延时函数初始化 uart_init(9600); //串口初始化为9600 LED_Init(); //初始化与LED连接的硬件接口 LCD_Init(); Adc_Init(); //ADC初始化 POINT_COLOR=RED;//设置字体为红色 LCD_ShowString(60,50,200,16,16,"Mini STM32"); LCD_ShowString(60,70,200,16,16,"ADC TEST"); LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(60,110,200,16,16,"2014/3/9"); //显示提示信息 POINT_COLOR=BLUE;//设置字体为蓝色 LCD_ShowString(60,130,200,16,16,"ADC_CH1_VAL:"); LCD_ShowString(60,150,200,16,16,"ADC_CH1_VOL:0.000V"); while(1) { adcx=Get_Adc_Average(ADC_Channel_1,10); LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值 temp=(float)adcx*(3.3/4096); adcx=temp; LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值 temp-=adcx; temp*=1000; LCD_ShowxNum(172,150,temp,3,16,0X80); LED0=!LED0; delay_ms(250); } }
void key_diy(void) { key=KEY_Scan(0); switch(key) { case KEY0_PRES: //基础分控制按键 if(key_status==0) key_status=1; //摆脚自然下垂,尽快使之摆脚大于±60° else if(key_status==1) key_status=2; //摆脚自然下垂,尽快使之做圆周运动 else if(key_status==2) key_status=3; //摆脚外力拉起到165°左右,使之倒立不少于5s,横杆转动不大于90° else key_status=0; //显示按键状态 LCD_ShowxNum(150,150,key_status,2,16,0); break; case KEY1_PRES: //发挥部分控制按键 if(key_status==0) key_status=4; //摆脚自然下垂状态下使之尽快摆起倒立,持续10s以上 else if(key_status==4) key_status=5; //摆脚倒立状态下,施加干扰使之能继续保持倒立 else if(key_status==5) key_status=6; //摆脚倒立状态下,使之做圆周转动,尽快转动超过360°(单方向) else if(key_status==6) key_status=7; //其他:加上位置闭环,使摆脚保持在某一位置实现倒立 else key_status=0; //显示按键状态 LCD_ShowxNum(150,150,key_status,2,16,0); break; case KEY2_PRES: flag=1; LCD_ShowString(250,150,50,20,16,(u8 *)"run.."); break; case WKUP_PRES: key_status=0; flag=!flag; //显示按键状态 LCD_ShowxNum(150,150,key_status,2,16,0); LCD_ShowxNum(260,200,flag,2,16,0); break; default: break; } }
//根据当前的日期,更新日历表. void calendar_date_refresh(void) { u8 weekn; //周寄存 u16 offx=(lcddev.width-240)/2; //显示阳历年月日 POINT_COLOR=BRED; BACK_COLOR=BLACK; LCD_ShowxNum(offx+5,OTHER_TOPY+9,(calendar.w_year/100)%100,2,16,0);//显示年 20/19 LCD_ShowxNum(offx+21,OTHER_TOPY+9,calendar.w_year%100,2,16,0); //显示年 LCD_ShowString(offx+37,OTHER_TOPY+9,lcddev.width,lcddev.height,16,"-"); //"-" LCD_ShowxNum(offx+45,OTHER_TOPY+9,calendar.w_month,2,16,0X80); //显示月 LCD_ShowString(offx+61,OTHER_TOPY+9,lcddev.width,lcddev.height,16,"-"); //"-" LCD_ShowxNum(offx+69,OTHER_TOPY+9,calendar.w_date,2,16,0X80); //显示日 //显示周几? POINT_COLOR=RED; weekn=calendar.week; Show_Str(5+offx,OTHER_TOPY+35,lcddev.width,lcddev.height,(u8 *)calendar_week_table[gui_phy.language][weekn],16,0); //显示周几? }
//显示播放时间,比特率 信息 //totsec;音频文件总时间长度 //cursec:当前播放时间 //bitrate:比特率(位速) void audio_msg_show(u32 totsec,u32 cursec,u32 bitrate) { static u16 playtime=0XFFFF;//播放时间标记 if(playtime!=cursec) //需要更新显示时间 { playtime=cursec; //显示播放时间 LCD_ShowxNum(60,210,playtime/60,2,16,0X80); //分钟 LCD_ShowChar(60+16,210,':',16,0); LCD_ShowxNum(60+24,210,playtime%60,2,16,0X80); //秒钟 LCD_ShowChar(60+40,210,'/',16,0); //显示总时间 LCD_ShowxNum(60+48,210,totsec/60,2,16,0X80); //分钟 LCD_ShowChar(60+64,210,':',16,0); LCD_ShowxNum(60+72,210,totsec%60,2,16,0X80); //秒钟 //显示位率 LCD_ShowxNum(60+110,210,bitrate/1000,4,16,0X80);//显示位率 LCD_ShowString(60+110+32,210,200,16,16,"Kbps"); } }
//ALIENTEK Mini STM32开发板范例代码16 //内部温度传感器实验 //技术支持:www.openedv.com //广州市星翼电子科技有限公司 int main(void) { u16 adcx; float temp; float temperate; delay_init(); //延时函数初始化 uart_init(9600); //串口初始化为9600 LED_Init(); //初始化与LED连接的硬件接口 LCD_Init(); T_Adc_Init(); //ADC初始化 POINT_COLOR=RED;//设置字体为红色 LCD_ShowString(60,50,200,16,16,"Mini STM32"); LCD_ShowString(60,70,200,16,16,"Temperature TEST"); LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(60,110,200,16,16,"2014/3/9"); //显示提示信息 POINT_COLOR=BLUE;//设置字体为蓝色 LCD_ShowString(60,130,200,16,16,"TEMP_VAL:"); LCD_ShowString(60,150,200,16,16,"TEMP_VOL:0.000V"); LCD_ShowString(60,170,200,16,16,"TEMPERATE:00.00C"); while(1) { adcx=T_Get_Adc_Average(ADC_CH_TEMP,10); LCD_ShowxNum(132,130,adcx,4,16,0);//显示ADC的值 temp=(float)adcx*(3.3/4096); temperate=temp;//保存温度传感器的电压值 adcx=temp; LCD_ShowxNum(132,150,adcx,1,16,0); //显示电压值整数部分 temp-=(u8)temp; //减掉整数部分 LCD_ShowxNum(148,150,temp*1000,3,16,0X80); //显示电压小数部分 temperate=(1.43-temperate)/0.0043+25; //计算出当前温度值 LCD_ShowxNum(140,170,(u8)temperate,2,16,0); //显示温度整数部分 temperate-=(u8)temperate; LCD_ShowxNum(164,170,temperate*100,2,16,0X80);//显示温度小数部分 LED0=!LED0; delay_ms(250); } }
void OSC_Gui(u8 xdata,u8 ydata) { LCD_Clear(WHITE); delay_ms(1); //这里需要修改 LCD_ShowString(50,10,300,16,16,"X : us/DIV Y : V/DIV"); switch(xdata) { case 0: LCD_ShowString(74,10,32,16,16,"2"); xbujin=10; break; case 1: LCD_ShowString(74,10,32,16,16,"200"); xbujin=0.1; break; default: LCD_ShowString(74,10,80,16,16,"20m "); xbujin=0.001; break; } switch(ydata) { case 0: LCD_ShowString(170,10,32,16,16,"1"); ybujin=10; break; case 1: LCD_ShowString(170,10,32,16,16,"0.1"); ybujin=100; break; } //截止区 LCD_ShowString(50,220,100,16,16,"T: ms"); LCD_ShowxNum(68,220,TIM5CH1_CAPTURE_VAL,6,16,0); LCD_DrawVitalLine(20,30,20,210); LCD_DrawVitalLine(40,30,40,210); LCD_DrawVitalLine(60,30,60,210); LCD_DrawVitalLine(80,30,80,210); LCD_DrawVitalLine(100,30,100,210); LCD_DrawVitalLine(120,30,120,210); LCD_DrawVitalLine(140,30,140,210); LCD_DrawLine(160,30,160,210); LCD_DrawVitalLine(180,30,180,210); LCD_DrawVitalLine(200,30,200,210); LCD_DrawVitalLine(220,30,220,210); LCD_DrawVitalLine(240,30,240,210); LCD_DrawVitalLine(260,30,260,210); LCD_DrawVitalLine(280,30,280,210); LCD_DrawVitalLine(300,30,300,210); LCD_DrawVitalLine(0,30,319,30); LCD_DrawVitalLine(0,50,319,50); LCD_DrawVitalLine(0,70,319,70); LCD_DrawVitalLine(0,90,319,90); LCD_DrawVitalLine(0,110,319,110); LCD_DrawLine(0,130,319,130); LCD_DrawVitalLine(0,150,319,150); LCD_DrawVitalLine(0,170,319,170); LCD_DrawVitalLine(0,190,319,190); LCD_DrawVitalLine(0,210,319,210); }