本期為大家推送迪文開發(fā)者論壇獲獎開源案例——基于T5L智能屏的汽車抬頭顯示器方案。該方案采用COF智能屏,通過T5L CAN接口,實時獲取汽車OBDII診斷接口的數(shù)據(jù),并將接收到的車速和轉速數(shù)據(jù)同步顯示在屏幕上,為駕駛員在行車過程中提供直觀、便捷的視覺輔助。
UI素材展示

GUI工程設計
C51工程設計
通過T5L CAN接口,獲取車速和轉速數(shù)據(jù),部分參考代碼如下:
void main(void){ T5LInit(); T0_Init(); // 定時器0初始化 EA = 1; //等待上電穩(wěn)定 TimerExtDelayMs(2000); GaugeViewInit(); while (1) { //obdii系統(tǒng)進入識別 if (ObdiiSysEnter()) { break; } } //HUD功能主入口 GaugeViewFunc();}
void GaugeViewFunc(void){ uint8_t rawDataBuff[256]; uint8_t resultBuff[5]; float vehicleSpeed = 0; float rotateSpeed = 0; uint32_t tempData = 0; while (1) { memset(rawDataBuff, 0, 256); // 讀取轉速 if (ObdiiReadPid(rawDataBuff, 2, 0x01, 0x0C)) { ObdiiLdsCalResult(0x0C, rawDataBuff, resultBuff); tempData = resultBuff[3]; tempData = resultBuff[2] + (tempData << 8); tempData = resultBuff[1] + (tempData << 8); tempData = resultBuff[0] + (tempData << 8); rotateSpeed = (float)tempData; GaugeViewRotateSpeedSet(rotateSpeed); } memset(rawDataBuff, 0, 256); // 讀取車速 if (ObdiiReadPid(rawDataBuff, 2, 0x01, 0x0D)) { ObdiiLdsCalResult(0x0D, rawDataBuff, resultBuff); tempData = resultBuff[3]; tempData = resultBuff[2] + (tempData << 8); tempData = resultBuff[1] + (tempData << 8); tempData = resultBuff[0] + (tempData << 8); vehicleSpeed = (float)tempData; GaugeViewPointerSet((uint8_t)vehicleSpeed); GaugeViewVehicleSpeedSet(vehicleSpeed); } }}void GaugeViewFunc(void){ uint8_t rawDataBuff[256]; uint8_t resultBuff[5]; float vehicleSpeed = 0; float rotateSpeed = 0; uint32_t tempData = 0; while (1) { memset(rawDataBuff, 0, 256); // 讀取轉速 if (ObdiiReadPid(rawDataBuff, 2, 0x01, 0x0C)) { ObdiiLdsCalResult(0x0C, rawDataBuff, resultBuff); tempData = resultBuff[3]; tempData = resultBuff[2] + (tempData << 8); tempData = resultBuff[1] + (tempData << 8); tempData = resultBuff[0] + (tempData << 8); rotateSpeed = (float)tempData; GaugeViewRotateSpeedSet(rotateSpeed); } memset(rawDataBuff, 0, 256); // 讀取車速 if (ObdiiReadPid(rawDataBuff, 2, 0x01, 0x0D)) { ObdiiLdsCalResult(0x0D, rawDataBuff, resultBuff); tempData = resultBuff[3]; tempData = resultBuff[2] + (tempData << 8); tempData = resultBuff[1] + (tempData << 8); tempData = resultBuff[0] + (tempData << 8); vehicleSpeed = (float)tempData; GaugeViewPointerSet((uint8_t)vehicleSpeed); GaugeViewVehicleSpeedSet(vehicleSpeed); } }}
-
顯示器
+關注
關注
22文章
5146瀏覽量
144374 -
開源
+關注
關注
3文章
4203瀏覽量
46125 -
智能屏幕
+關注
關注
0文章
73瀏覽量
3825
發(fā)布評論請先 登錄
MAX25512:汽車顯示的理想4通道LED背光驅動方案
用 1024 顆 LED 點亮像素創(chuàng)意!涂鴉 T5 AI 像素屏方案,高密度·高兼容·全開源
車載抬頭顯示器HUD陽光倒灌的檢測
激光焊接技術在車載屏顯行業(yè)的應用
長城汽車車載顯示屏榮獲TüV萊茵眼部舒適度五星認證
【開源獲獎案例】AI智能交互新方案:基于T5L智能屏的AI DeepSeek大模型
Analog Devices / Maxim Integrated MAX25540汽車顯示器電源解決方案數(shù)據(jù)手冊
迪文科技精彩亮相德國國際嵌入式展
【開源獲獎案例】基于T5L智能屏的汽車抬頭顯示器方案
評論