本期為大家推送迪文開發者論壇獲獎開源案例——基于T5L智能屏的FM收音機。該方案基于T5L智能屏,通過串口4與FM收音機模塊進行通訊,實現自動搜索獲取不同頻段電臺,同時支持選臺、頻率調節、音量控制等功能,為用戶提供便捷操作體驗。
UI素材展示
GUI工程設計
C51工程設計
(1)屏幕代碼如下:
voidresetFreChannelValue(void){ Write_Dgus(0x1510,10800); Write_Dgus(0x1511,1);}INIT_CPU();//系統初始化PORT_Init();//IO口初始化T0_Init();//定時器0初始化T2_Init();//定時器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)屏幕處理觸摸數據代碼如下:
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收音機板數據解析核心代碼如下:
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; }}
-
收音機
+關注
關注
60文章
600瀏覽量
76891 -
智能屏幕
+關注
關注
0文章
68瀏覽量
3566
發布評論請先 登錄
相關推薦
基于Arduino的FM調頻收音機
【開源獲獎案例】基于T5L芯片的調音臺麥克風混響回聲控制

評論