68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> HDSC/華大 >> 三分鐘學(xué)會國產(chǎn)低功耗華大單片機(jī)四(多種調(diào)試方法及printf輸出)

三分鐘學(xué)會國產(chǎn)低功耗華大單片機(jī)四(多種調(diào)試方法及printf輸出)

關(guān)鍵字:小華單片機(jī) 作者: 來源: 發(fā)布時(shí)間:2020-06-08  瀏覽:94

工程師做單片機(jī)軟件開發(fā)的時(shí)候必然要對所寫的軟件進(jìn)行驗(yàn)證。其實(shí)就是我們讓寫的程序跑起來通過一定的手段來觀察MCU的CPU與寄存器是否與我們的理論值相同的操作。通常采用的手段有如下幾種:

  1. 仿真器(如J-link等)仿真;
  2. IO口指示;
  3. 液晶屏信息輸出;
  4. 串口輸出。

以上幾種方法中方法1仿真器仿真最直接,在仿真環(huán)境中可以清楚明確的看到自己想要的信息。但也有其局限性,如產(chǎn)品把芯片的引腳全部占滿在調(diào)試最后的功能時(shí)正好用到了仿真的引腳;有些芯片進(jìn)入低功耗模式為了降低功耗會關(guān)掉仿真接口等等。方法2最容易實(shí)現(xiàn),只需在調(diào)試的時(shí)候使用MCU某一引腳為輸出,程序中讀取想要的內(nèi)容做判斷后在這個(gè)引腳輸出即可。我們可以用示波器量這個(gè)引腳的電平,或直接接個(gè)指示燈來觀察就可以。方法3的使用比較受限,比較適合有LCD顯示的產(chǎn)品。方法4串口輸出的方法是我們今天的重點(diǎn)。

就像前面所說的當(dāng)仿真接口不方便的時(shí)候可以用串口來調(diào)試,那有沒有什么情況下串口調(diào)試效率會比仿真器高呢?答案是肯定的。舉個(gè)例子,做平衡系統(tǒng)時(shí)調(diào)節(jié)PID參數(shù),我們是會選擇 修改參數(shù)–>編譯–>燒錄–>運(yùn)行–>修改…,還是做一個(gè)功能可以一邊運(yùn)行一邊修改參數(shù)呢?顯然一邊運(yùn)行一邊修改效率會高很多,而通常的仿真器仿真時(shí)都要設(shè)置斷點(diǎn)來觀察值,如果要修改參數(shù),則要重新編譯–>燒錄–>運(yùn)行,想要邊運(yùn)行邊修改很難,F(xiàn)在的應(yīng)用開發(fā)都講究交互試設(shè)計(jì),我們在調(diào)試程序的時(shí)候是否也可以呢?還用上面的例子,我們可以加下兩個(gè)按鍵分別定義為“加”和“減”用來修改參數(shù),當(dāng)然不要這兩個(gè)按鍵也是可以的,只要把參數(shù)按一定的規(guī)律做變化就可以,參數(shù)和運(yùn)行的結(jié)果都通過串口輸出,這樣我們就可以很直觀的看到哪組參數(shù)是合適的。

用串口輸出就要編寫串口代碼,大家知道如果用串口輸出的數(shù)據(jù)比較容易,但是不是很直觀,有沒有什么方法可以像我們學(xué)C語言時(shí)候直接用printf()。來輸出我們想要的內(nèi)容呢?這是個(gè)非常好的問題,華大單片機(jī)實(shí)現(xiàn)起來十分簡單,F(xiàn)在就以國產(chǎn)超低功耗華大單片機(jī)HC32F003為例向大家介紹如何來實(shí)現(xiàn)printf()的輸出。

還是用之前建立好的空工程,閑話少說直接上代碼。

#define DEBUG #include "gpio.h"int main(){ Clk_SetPeripheralGate(ClkPeripheralUart0, TRUE); //開UART0外設(shè)時(shí)鐘 Clk_SetPeripheralGate(ClkPeripheralBt, TRUE); //開定時(shí)器外設(shè)時(shí)鐘 Clk_SetPeripheralGate(ClkPeripheralGpio, TRUE); //開GPIO外設(shè)時(shí)鐘#ifdef DEBUG Debug_UartInit(); //調(diào)試串口初始化#endif #ifdef DEBUG printf("This is a UART Test!"); //輸出調(diào)試內(nèi)容#endif while(1) { ; }}

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

本文旨在拋磚引玉,其余具體使用歡迎加群164973950交流。

?國產(chǎn)低功耗華大單片機(jī)主力型號如下:

HC32F003 HC32F005 HC32L110 HC32F030 HC32L136 HC32M140 HC32F146 HC32L150 HC32L156

芯片相關(guān)資料下載鏈接:https://blog.csdn.net/lvk/article/details/85260690

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

代碼很簡單先打開UART0,定時(shí)器,GPIO的外設(shè)時(shí)鐘,因?yàn)槲覀兪褂么谶@三個(gè)外設(shè)是必須用到的。

第二部分如果定義了DEBUG則對調(diào)試串口進(jìn)行初始化。初始化在ddl.c文件中完成。

可以看到串口用到了芯片的P35為TX引腳,特率為19200bps。

如果定義了DEBUG則輸出This is a UART Test!(這里的內(nèi)容根據(jù)實(shí)際需要自己來定義。)

通過USB轉(zhuǎn)TTL我們可以把數(shù)據(jù)傳到電腦上,在電腦中我們打開串口調(diào)試工具可以看到程序跑起來后我們收到的數(shù)據(jù)與理論值相同。如下圖所示:

我們在開發(fā)的時(shí)候只要在我們想要觀察結(jié)果的位置加上以下語句就可以

#ifdef DEBUG printf(); ????????????????????????????//輸出調(diào)試內(nèi)容#endif

當(dāng)程序全部OK以后這部分語句也可以不進(jìn)行刪除,只要把程序最開始的

#define DEBUG 語句注釋掉,程序中所有的調(diào)試語句都不參考最終程序的編譯,減小程序空間并提高程序運(yùn)行效率。

其實(shí)在程序的開發(fā)過程中各種調(diào)試方法都有自己各自己的優(yōu)缺點(diǎn),要根據(jù)實(shí)際的情況綜合運(yùn)用最合適的調(diào)試方法,才能讓保證開發(fā)最高效的進(jìn)行。 ???

編輯:admin  最后修改時(shí)間:2020-06-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

宁津县| 杭州市| 科尔| 瑞金市| 高州市| 泸西县| 平原县| 新巴尔虎左旗| 新建县| 苗栗市| 寿光市| 固安县| 龙门县| 新乐市| 铜梁县| 阿合奇县| 宁化县| 黔西县| 武乡县| 金坛市| 文水县| 宝山区| 潜江市| 鹤山市| 罗山县| 武冈市| 唐河县| 建湖县| 大同县| 夏河县| 镇康县| 巩义市| 四平市| 新和县| 天门市| 抚顺市| 丰台区| 咸丰县| 同心县| 邵武市| 北海市|