智慧型車學習歷程

2021-08-29 18:52:43 字數 2814 閱讀 3036

單工,半雙工和全雙工

回顯at命令

數據機

線性ccd

com口

閾值二值化

影象資料

上位機和下位機

攝像頭除錯助手

線性 ccd 除錯助手

虛擬示波器

舵機 (電機放置在裡面)

時鐘定義列表

pdb彈性定時器(flextimer,ftm)

指標結構體

gpio 通用輸入輸出

通用非同步接收器/傳送器(uart)

中斷:中斷是指微控制器在執行別的**是,系統可以通過中斷方式打斷連續的執行,先執行中斷服務函式,開中斷就是指系統可以在連續執行是中斷,去執行中斷服務函式,關中斷就是指關閉系統中斷,不允許系統打斷連續的執行。

微控制器的中斷是一種非常有用的設定。我們在編寫程式時都會在中斷程式內設定一些簡單的操作,比如對鍵盤的掃瞄程式、感測器返回資料讀取程式等等。而且大多數中斷都是有固定觸發條件和時間的,我們可以利用這些進入中斷的特定時間完成很多特定的事件。比如有1hz的中斷,還有2hz的中斷等等~~

當我們在程式裡面設定成將所有中斷開啟,那麼這個微控制器的所有型別的中斷都會在這個它特有的時間和條件下,進入它自己的中斷程式去執行工作。如果我們關中斷,那麼所有型別的中斷不論什麼條件和時間都不會進入它自己的中斷程式去執行工作了。很多微控制器的中斷是可以有區別的選擇開關中斷,而且可以有些開有些關閉。

提醒一下,在中斷執行程式裡面一定要把堆疊設定好哦,瑤及時保護各個常用暫存器內的資料,不然出了中斷後的資料就亂套了~~

/*!

* @brief main函式

* @since v50

* @note 山.外攝像頭 lcd 測試實驗

*/void main(void)

}void sendpicture(void)

;

這樣,若宣告 s1 為乙個「student」型別的結構體變數,則使用如下語句:

struct student s1; //宣告s1為「student」型別的結構體變數

【例如】定義乙個名為 student 的結構體變數型別,同時宣告 s1 為乙個「student」型別的

結構體變數

struct student //定義乙個名為student的結構體變數型別

s1; //宣告s1為「student」型別的結構體變數

2)結構體變數的使用

結構體是乙個新的資料型別,因此結構體變數也可以像其它型別的變數一樣賦值運算,

不同的是結構體變數以成員作為基本變數。

結構體成員的表示方式為:

結構體變數.成員名

如果將「結構體變數.成員名」看成乙個整體,則這個整體的資料型別與結構體中該成員

的資料型別相同,這樣就像前面所講的變數那樣使用。

【例如】:

s1.age=18; //將資料 18 賦給 s1.age(理解為學生 s1 的年齡為 18)
3)結構體指標

結構體指標是指向結構體的指標。它由乙個加在結構體變數名前的「*」操作符來宣告。

例如用上面已說明的結構體宣告乙個結構體指標如下:

struct student *pstudent; //宣告 pstudent 為乙個「student」型別指標
使用結構體指針對結構體成員的訪問,與結構體變數對結構體成員的訪問在表達方式上

有所不同。結構體指針對結構體成員的訪問表示為:

結構體指標名->結構體成員

其中"->「是兩個符號」-「和」>"的組合,好像乙個箭頭指向結構體成員。例如要給上面定

義的結構體中 name 和 age 賦值,可以用下面語句:

strcpy(pstudent->name,"liuyuzhang");

pstudent->age=18;

實際上,pstudent->name 就是(*pstudent).name 的縮寫形式。需要指出的是結構體指標是指向結構體的乙個指標,即結構體中第乙個成員的首位址,因此在使用之前應該對結構體指標初始化,即分配整個結構體長度的位元組空間。這可用下面函式完成:

pstudent=(struct student*)malloc(sizeof (struct student));

sizeof(struct student)自動求取 student 結構體的位元組長度,

malloc()函式定義了乙個大小為結構體長度的記憶體區域,然後將其位址作為結構體指標返回。

通過引腳資料輸入暫存器,可獲得每個引腳的邏輯狀態,提供的引腳為數字功能,相應的埠控制和中斷模組有效而配置。引腳資料輸入暫存器在埠控制和輸入有效中的任何有效的數字過濾器之後返回非同步引腳狀態。輸入引腳非同步器共享埠控制和中斷模組,為了如果相應的埠控制和中斷模組在非同步器失效的同時也失效。當乙個埠對於普通目的輸入功能不需要時,這減少了電源的消耗。

每個引腳的邏輯狀態可以通過引腳資料輸出暫存器和引腳輸出允許暫存器控制,提供的引腳被配置作為 gpio 功能。如果引腳被配置為 pio 功能並且相應的資料輸出允許暫存器位被清除,那麼引腳被配置為輸入。如果引腳被配置為 gpio 功能並且相應的資料輸出允許暫存器位被置位,那麼引腳被配置為輸出並且引腳的邏輯狀態與相應引腳資料輸出暫存器相同。為了利用有效位實現通用輸出,通過寫單個暫存器,在乙個埠裡設定、清除或觸發,引腳資料設定,引腳資料清除和引腳資料觸發暫存器允許乙個或多個輸出。相應的埠控制和中斷模組不需要允許更新引腳輸出有效暫存器和引腳資料輸出暫存器的狀態(包括暫存器的設定/清除/觸發)

uart 允許與外圍裝置及其他 cpu 進行非同步序列通訊。

智慧型車小白學習日記

前言 一 gpio是什麼?二 使用步驟 總結隨著智慧型計算機行業的不斷發展,眾多領域都離不開 智慧型 兩個字,對於在校大學生來說,智慧型車競賽是含金量較高的比賽之一,其吸引眾多愛好者投身其中,在十五屆智慧型車比賽中盲目掙扎數月,卡在攝像頭問題上,不覺十六屆核心板霸主地位已然易主,從恩智浦轉向沁恒,從...

智慧型車基礎學習JTAG介面

從智慧型車的製作中知道中斷的概念,但一直一知半解,最終下定決心好好打基礎。在一開始主要接觸的是k60,所以這些基礎知識也結合k60切入,之後可能會接觸k66的有關內容,估計大同小異吧。jatg介面 即聯合測試實現工作組,最初是用來對晶元進行測試的,如今jtag介面還常用於實現isp in syste...

智慧型車基礎學習FTM模組

ftm模組是乙個多功能定時器模組,同時也是在智慧型車製作中最常用到的模組,他的偉大之處在於他能輸出pwm,能輸出比較,輸入捕捉,定時中斷,進行脈衝加減計數等。1 ftm暫存器 在k60中,ftm只有三個模組,ftm0 ftm1 ftm2。ftmx cnt 計數器暫存器 負責計數 ftmx sc 狀態...