素材來源 | CW32生態(tài)社區(qū)
經(jīng)常有小伙伴問【哪里有可以參考的開源項目】之類的問題。其實,我不定期都在給大家分享一些優(yōu)秀的開源項目。
今天就再給大家分享一個基于CW32單片機(jī)做的軟硬件開源項目,其中包括RTOS、GUI、藍(lán)牙、電源管理等眾多常用功能。
主要功能
這個產(chǎn)品我收到一個實物,也用了一段時間,但有些功能還沒有完善,不過整體還不錯,用于學(xué)習(xí)或者做項目借鑒完全沒問題。
主要功能包含:
1. 電壓測量+閾值判斷,閾值電平可以根據(jù)需求自行設(shè)定滿足不同邏輯電平的場景,并且保留“簡易邏輯電平測試筆“好用的紅綠燈提示功能;
2. 通斷測量,且閾值電阻可以根據(jù)需求調(diào)整;
3. 二極管測量,點亮一顆二極管(注意!不是三極管?。。。?br />
4. PWM輸出,方便在一些場景下提供一個已知量對系統(tǒng)進(jìn)行測試,也可以對無源蜂鳴器等進(jìn)行測試
5. PWM輸入,可以對頻率進(jìn)行測量(甚至是對串口等數(shù)據(jù)進(jìn)行簡單的解碼顯示等功能,不過目前技術(shù)有限還沒有實現(xiàn))
6. 直流輸出,模擬出一個需要的直流電平進(jìn)行測試。
7. 可以連接擴(kuò)展板進(jìn)行配合測量。
設(shè)計思路:
在對測試筆進(jìn)行設(shè)計時,我把整體分為了五個部分:模擬前端、電源與電池管理、單片機(jī)及外設(shè)、顯示屏、用戶控制。根據(jù)模塊化的設(shè)計思路,我們可以在畫電路圖時更加有條理,也可以在進(jìn)行PCBLayout時將布局按照模塊進(jìn)行大致區(qū)分,以便于進(jìn)行走線等操作。
我們根據(jù)需求對每個部分進(jìn)行細(xì)化設(shè)計,來實現(xiàn)既定目標(biāo)。在下面,將會結(jié)合電路圖和PCB對我的設(shè)計和設(shè)計思路進(jìn)行詳細(xì)的說明。 (電源與電池管理) ?
(單片機(jī)及外設(shè))
(模擬前端)
軟件代碼和調(diào)試
該項目開源地址: https://gitee.com/multifunction_test_pen/test_pen
文件結(jié)構(gòu):
1. GUI --- LCD驅(qū)動和UI
2. FreeRTOS--- RTOS系統(tǒng)
3. USER --- 底層驅(qū)動和app
這里面包括單片機(jī)常見外設(shè)及應(yīng)用代碼,下面給大家看一些代碼。
電池電量測量
BAT_ADC_ResultBuff數(shù)組存儲的是電池采集的ADC值。 1.計算BAT_ADC_ResultBuff數(shù)組的平均值,去掉最大最小值,防止數(shù)據(jù)突變。 2.將計算的平均值。
uint16_t get_bat_val(void) { uint32_t sum = 0; uint16_t bat_val; uint32_t len = sizeof(BAT_ADC_ResultBuff) / 2; uint16_t max = 0; uint16_t min = 0xffff; int i; for ( i = 0; i < len; i++) { sum += BAT_ADC_ResultBuff[i]; if(BAT_ADC_ResultBuff[i] > max) { max = BAT_ADC_ResultBuff[i]; } if(BAT_ADC_ResultBuff[i] < min) { min = BAT_ADC_ResultBuff[i]; } } sum -= max + min; sum = sum / (len - 2); sum = dynamic_mean(bat_cahe,sum,len_cahe); // sum -= 30; bat_val = sum * 2500 * 2 /4095; return bat_val; }占空比調(diào)節(jié)
占空比修改在PWM中斷里面修改,只需要改變PosWidth值。
void GTIM1_IRQHandler(void) { static uint16_t TimeCnt = 0; GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_OV); if (TimeCnt++ >= 100) { TimeCnt = 0; GTIM_SetCompare1(CW_GTIM1, PosWidth); } /* USER CODE END */ }界面顯示
界面顯示包含了顯示內(nèi)容和功能檢測.
為了方便測試,這里還引入了上位機(jī)工具,比如使用虛擬儀器軟件進(jìn)行測量:
示波器顯示:
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6023文章
44375瀏覽量
628288 -
電源管理
+關(guān)注
關(guān)注
115文章
6098瀏覽量
143330 -
軟硬件
+關(guān)注
關(guān)注
1文章
282瀏覽量
19146 -
RTOS
+關(guān)注
關(guān)注
20文章
804瀏覽量
119112 -
CW32
+關(guān)注
關(guān)注
1文章
168瀏覽量
500
原文標(biāo)題:集RTOS、GUI、藍(lán)牙、電源管理等一體的軟硬件開源項目(值得收藏學(xué)習(xí))
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論