#define board_addr (uint16_t)(('0')|('1')<<8)
巨集定義只能定義常量不可定義變數:
#define board_addr (board_id/10+'0')|(board_id%10+'0')<<8)
board_id為變數,所以不成功
receive_flag = 1;
定義標誌位,if()語句常用標誌位為1來判斷是否進入執行內部函式。
中斷定時器中,採用標誌位來判斷執行時間到了嗎?到了就進入if()執行內部函式,節約微控制器資源。
微控制器除錯要領:
設定執行斷點
先全速執行到要除錯部分再單步執行檢視執行過程。
判斷是否執行至設定斷點的語句處,判斷執行中間過程可能出現的原因。
監聽陣列,變數等的資料變化
進入watch1,出現如圖所示內容,監聽內部資料變化
中斷定時器
#include "stm32f10x_it.h" 中設定函式,使用微控制器中斷定時器資源
在給定stm32函式中巢狀需要函式是使用內部資源最方便合理的做法。
採用了中斷標誌
啟用中斷定時器必須啟用如圖所示時鐘函式。
結構體:簡化程式設計
中為連續結構體
__attribute__((__packed__)) //配置連續存貯空間
結構體與指標的結合能極大的簡化程式設計
rev_dat *tp;定義結構體指標,並啟用函式,方便後續呼叫。
按鍵:按鍵掃瞄,把結果存入變數中,採用二進位制位來判斷是否按下。
嵌入式開發經驗
任何開發都依賴硬體,在嵌入式領域。cpu的外設很重要,我們一般都是根據外設進行開發。其實cpu的核心 arm powerpc等 反而對於我們而言並不是那樣重要。開發時,乙個好的硬體測試平台很重要。包括偵錯程式和開發環境。同時,晶元資料手冊和參考手冊很重要。但是絕對不是硬生生地像閱讀一本教科書一樣進行...
對基於模型的嵌入式開發專案的工作
基於模型進行嵌入專案的開發,在模型建設方面主要分兩個部分 乙個是控制策略 控制演算法的建模 這部分所建立的模型在後續的工作中主要用來進行控制 以及自動 生成及演算法實現 另乙個是被控物件模型 這一部分一般不需要生成產品級 主要作用是用來驗證第一部分模型的正確性,以及能夠方便的在模型階段進行一些控制引...
嵌入式專案管理 嵌入式專案講解
通過建立乙個嵌入式專案管理,能夠使產品完成效率更高,少該bug,提高產品質量,綜合各大家指導和本人經驗,將嵌入式研發專案的一般流程總結如下 嵌入式專案管理 嵌入式專案講解 一.高層設計 規劃專案 1.抽取難點 將專案中難點分解成乙個個原子性實驗 2.設計演算法 將每個原子性實驗設計實現演算法 3.搭...