用TM4C123GH6PM解析TGAM資料報

2021-08-10 06:00:27 字數 1268 閱讀 9324

本次開發使用神念科技的tgam模組,該模組突破了醫用常規的溼感測器使用上的不便,tgam和人體的接觸只需要乙個簡單的幹接觸點,使用時,用一電極夾住左耳垂作為基準電位,另一電極放置左前額進行測量。

開發過程較為困難,因為剛開始一無所知,正應了一句話萬事開頭難。腦電波模組是同學借給我們的,但並沒有提供任何資料,僅知道需要藍芽連線,接收資料。最開始的摸索,甚至連電源開關都沒找到,後來更替了新電池,按下乙個隱蔽的小按鈕,發現有指示燈亮起,估計是可以工作了。

首先肯定要在pc端實現基本的資料解析功能,根據相關說明書的指導,需要將腦電波模組的藍芽與pc連線,然後執行解析程式(c語言版本),不過需要配置藍芽連線所在的com口。由於我的筆記本既不支援串列埠除錯也不配備藍芽,只有使用別人的電腦進行實驗。知道方法後就是連線腦電波模組,但問題又來了,不知道配對碼。嘗試了多次一般藍芽預設配對碼(0000或1234),都無法連線,無奈只能問模組原主人配對碼是什麼。好在他提供我們的是正確的配對碼,連線成功後,成功執行c程式,果然在螢幕不斷列印出解析的資料。突然想起在這之前,我們按照學長提供的資料,下了realterm(用來觀察腦電波模組資料報),不過在我們開發過程中,這款軟體僅用來測試是否接收到了資料。

配對上,首先兩個模組要一主一從,由於腦電波模組可以被搜尋到和配對,可以相信它是從模式,我們自己的模組就要為主模式,然後主模式搜尋找到附近可以配對的藍芽位址,進而配對,檢查對方模組是否在配對列表中,下次使用直接連線即可。不過期間也有個問題,進入at模式有兩種方法,一是電源和en同時上電拉高,不過此時使用固定波特率38400,而我們的腦電波模組波特率為57600,此時配對後也難以改變波特率,所以資料報不可能正確解析出來,二是先上電再拉到en,此時為模組自身設定好的波特率,如果我們事先將其波特率設為57600,那麼配對連線好仍可以使用這個波特率接收資料解析資料。

配對成功後,開始研究如何把uart接收的資料用以解析,我找到了先關api函式(乙個.c和乙個.h檔案)。此外還有乙份英文說明,儘管英語是硬傷,好在有谷歌翻譯。認真閱讀後,了解大概的使用方法,並把例程移植到微控制器**上,需要修改的就是資料讀取方式,源**是c語言使用檔案相關的函式如fopen、fread等,它每次乙個讀取乙個位元組,既然如此就很容易將這一過程修改為uart每次讀取乙個位元組,這是最主要的修改,此外還有其他一些細節修改不再贅述。

最後,說一下目前實現的效果和作品體驗,目前可以在微控制器上解析出腦電波資料報,得到我們腦部活動的專注度和冥想度,大概一秒鐘更新一次(受限於腦電波模組資料傳送情況),然後顯示在lcd上。體驗一下,感覺有些延遲,尤其在剛帶上腦電波採集器時,需要數秒才會在lcd上顯示數值。摘下後,反應還可以,一兩秒數值會變為0表示沒有腦電資料。

神念科技官網

關於TM4C123G微處理器FPU能力的測試

近來學習tm4c的過程中看到有fpu,便仿照正點原子測試stm32f4 fpu的方法測試一下,在此分享一下測試方法,若有不正之處還請各位指出。在測試fpu的時候用了julia集合的生成演算法,該演算法比較簡單,但是包括大量的浮點數運算,因此這種演算法能夠非常有效地展示 fpu 的優勢。下面看一下程式...

TM4C1294 uart功能使用

今天我們介紹tm4c板的uart功能,關於uart的基本知識和相關資料,網上都有詳細的帖子,我們主要來說明如何在板子上使用。主要使用的函式有以下幾個 sysctlclockfreqset 設定系統的晶振頻率 sysctlperipheralenable 使能板子的相應外設 intmasterenab...

C語言 第 11節 指標有TM 什麼用 1

70後說80後太狂,80後說90後太傻,90後說自己是 太狂的大多都成功了,太傻的大多還是 言歸正傳 這裡依然用幾個例子 來解釋指標的作用 include void exchange int a,int b int main void void exchange int a,int b 輸出 old...