1.硬件——焊接調試
趣事:由于測量手法問題,以及對示波器不太熟悉,差點以為沒信號,都打算重焊一塊板子了,但,實際上,信號輸出是相對完美的;
遇到的疑難雜癥:
?? ???? 1)50Hz陷波電路沒用,發現是仿真失誤,沒用仔細看抑制系數,光看了一個波形輪廓就以為能抑制50Hz的干擾了,實際上抑制效果不行,換上新計算的電阻,電容就歐克了
?? ?? ? 2)由于導聯脫落電路沒用,一直以為是代碼有問題,結果是板子有問題;由于電阻不分壓,一直以為是虛焊,結果是原理圖有問題。
調試經歷:
?? ?? ? 1):先測各個靜態工作點
? ? ? ? 2):上信號,測試,我的板子是一板通的,但是,如果,信號出不來的,那就只能,分階段,測試各個測試點了
2、軟件——調試代碼:
總體思路:
? ? ? ?? ? ?1)先調用ADC函數采集心電信號,然后,將其儲存到數組里面;
?? ??? ?? ? 2)然后將采集到的心電信號,依次經過各個濾波函數的“洗禮”,最后輸出;濾波函數依次有:50Hz陷波函數(抑制工頻干擾);高通濾波函數(抑制基線漂移,本質抑制低頻信號);低通濾波函數(抑制高頻噪聲)。信號的高,低頻是相對而言。
?? ??? ?? ? 3)然后,調用心率計算函數,計算出心率。核心就是:Rate=60/T(兩個波峰之間的間隔時間),確定波峰:當前這個波峰,比上一個峰高,還比下一個峰高,并且不低于波峰的最低標準;確定T:兩個確定的波峰之間的間隔時間,并且要大于不應期。
?? ??? ?? ? 4)最終,導聯脫落,直接調用庫函數中檢測引腳高低電平狀態的函數【HAL_GPIO_ReadPin()】,進行一個判斷。
難關破:
?? ??? ?? ? 1)確定濾波系數,我運用的列舉法,實踐對比,信號的好壞,在Matlab上,不斷嘗試。直至找到最佳的濾波系數