——來(lái)自迪文開(kāi)發(fā)者論壇
本期為大家推送迪文開(kāi)發(fā)者論壇獲獎(jiǎng)開(kāi)源案例——基于T5L智能屏的FM收音機(jī)。該方案基于T5L智能屏,通過(guò)串口4與FM收音機(jī)模塊進(jìn)行通訊,實(shí)現(xiàn)自動(dòng)搜索獲取不同頻段電臺(tái),同時(shí)支持選臺(tái)、頻率調(diào)節(jié)、音量控制等功能,為用戶(hù)提供便捷操作體驗(yàn)。
UI素材展示
GUI工程設(shè)計(jì)
C51工程設(shè)計(jì)
(1)屏幕代碼如下:
voidresetFreChannelValue(void){ Write_Dgus(0x1510,10800); Write_Dgus(0x1511,1);}INIT_CPU();//系統(tǒng)初始化PORT_Init();//IO口初始化T0_Init();//定時(shí)器0初始化T2_Init();//定時(shí)器2初始化my_UART4_Init(115200);uart_init();//串口初始化ws2812_writ_byte(8);//LED初始化resetFreChannelValue();ChangePage(1);
(2)屏幕顯示頻率,頻道代碼如下:
voidDispFreChannel(void){ if(Uart4_Rx[0]!=0x51) return; if(Uart4_Rx[1]!=0x10) return; Write_Dgus(0x1510,Uart4_Rx[2]<<8|Uart4_Rx[3]);? ? Write_Dgus(0x1511,Uart4_Rx[4]);}
(3)屏幕處理觸摸數(shù)據(jù)代碼如下:
void FMCtrol(void){ u8Read[2]; u8sendda[10],i=0; memset(Read,0,sizeof(Read)); Read_Dgusii_Vp(0x1500,Read,1); if(!Read[1]) return; memset(sendda,0,sizeof(sendda)); sendda[0]=0x51; switch(Read[1]) { case1: sendda[1]=0x10; break; case2: sendda[1]=0x11; break; case3: sendda[1]=0x12; break; case4: sendda[1]=0x13; break; case5: sendda[1]=0x14; break; case6: sendda[1]=0x15; break; case7: sendda[1]=0x16; break; case8: sendda[1]=0x17; break; } UART4_SendStr(sendda,2); Write_Dgus(0x1500,0);}
(4)FM收音機(jī)板數(shù)據(jù)解析核心代碼如下:
voidFmModeUpdateFrmChannel(void){ staticuint16_tFrebuf=0xffff,Channelbuf=0xffff; staticuint16_tdelayin=80; uint8_tsendbufl[10]; if(delayin) { delayin--; return; } if(app_get_curr_task() != APP_FM_TASK) return; if(get_fm_channel()!=Channelbuf|| get_fm_frq()!=Frebuf) { Channelbuf=get_fm_channel(); Frebuf=get_fm_frq(); sendbufl[0]=0x51; sendbufl[1]=0x10; sendbufl[2]=Frebuf>>8; sendbufl[3]=Frebuf; sendbufl[4]=Channelbuf; //UserUartRetRec(AI_uart_bus,sendbufl,5); AI_uart_bus->write(sendbufl,5); }}voidUserUartRecHandle(constuart_bus_t*uart_bus,u8 *data,u16 len){ u8 retdata[30]; u8 i=0; if(data[0]!=DwinLocal_addr) return; switch(data[1]) { case0x10: app_task_put_key_msg(KEY_MUSIC_PP,0); break; case0x11: app_task_put_key_msg(KEY_FM_SCAN_ALL,0); break; case0x12: app_task_put_key_msg(KEY_FM_NEXT_STATION,0); break; case0x13: app_task_put_key_msg(KEY_FM_PREV_STATION,0); break; case0x14: app_task_put_key_msg(KEY_FM_NEXT_FREQ,0); break; case0x15: app_task_put_key_msg(KEY_FM_PREV_FREQ,0); break; case0x16: app_task_put_key_msg(KEY_VOL_UP,0); break; case0x17: app_task_put_key_msg(KEY_VOL_DOWN,0); break; }}
-
收音機(jī)
+關(guān)注
關(guān)注
60文章
600瀏覽量
76858 -
智能屏幕
+關(guān)注
關(guān)注
0文章
68瀏覽量
3559
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
TDA7088T構(gòu)成的FM收音機(jī)電路
FM自動(dòng)選臺(tái)調(diào)諧收音機(jī)電路

FM收音機(jī)工作原理及修理

收音機(jī)調(diào)頻(FM)發(fā)射機(jī)的小制作
FM收音機(jī)的制作與設(shè)計(jì)--課程設(shè)計(jì)
基于Arduino的FM調(diào)頻收音機(jī)
【開(kāi)源獲獎(jiǎng)案例】基于T5L的smtp郵件發(fā)送器

基于T5L智能屏的萬(wàn)能紅外控制器

【開(kāi)源獲獎(jiǎng)案例】基于T5L智能屏的指紋識(shí)別解決方案

【開(kāi)源獲獎(jiǎng)案例】基于T5L智能屏的便攜功率計(jì)解決方案

【開(kāi)源獲獎(jiǎng)案例】基于T5L智能屏的汽車(chē)抬頭顯示器方案

【開(kāi)源獲獎(jiǎng)案例】基于T5L智能屏的EQ均衡效果器

評(píng)論