AN0001 RT-Thread串口應(yīng)用指南學(xué)習(xí)筆記


說明

  • 開發(fā)環(huán)境:keil MDK V5.21.1.0
  • 硬件平臺:STM32F429-apollo開發(fā)板(正點原子)
  • Env工具:env_released_0.7.1
  • RT-Thread版本: 3.1.1

配置工程

??在工程目錄下右擊挠阁,選擇ConEmu Here,打開Env工具。
image.png

??在Env 命令行中輸入menuconfig运挫,進(jìn)入配置界面,使用menuconfig工具配置工程套耕。操作方法如下:
image.png

??瀏覽各選項谁帕,熟悉結(jié)構(gòu),確定以下3處設(shè)置正確冯袍,路徑在圖片左上角紅框內(nèi)匈挖。(官方bsp已經(jīng)將串口配置好了,所以應(yīng)該不需要修改康愤,使用默認(rèn)配置即可儡循。)
image.png

image.png

image.png

??為了加快編譯速度,也為了避免帶來不必要的影響征冷,將LWIP和SAL相關(guān)功能刪除择膝,具體配置如下圖:
image.png

image.png

??在這里提一個小技巧,Env工具支持自動補(bǔ)全检激,按Tab鍵即可肴捉。例如要求“在 env 命令行中輸入 menuconfig”,我們輸入men之后按Tab呵扛,則出現(xiàn)完整的menuconfig命令每庆;要求“輸入命令scons”,我們輸入sco之后按Tab今穿,則出現(xiàn)完整的scons命令缤灵。

??配置好之后保存退出,輸入命令 scons --target=mdk5 -s 生成 MDK5 工程(如果使用MDK4則使用scons --target=mdk4 -s生成)蓝晒,工程名稱為project.uvprojx腮出,打開該工程,可以看到相關(guān)設(shè)置與模板一致芝薇,不需要再次修改胚嘲。編譯后會有3個warning,不用管它洛二,下載到開發(fā)板中馋劈,打開串口調(diào)試助手XCOM V2.0攻锰,輸出如下,紅色方框內(nèi)為配置參數(shù)和輸入指令妓雾。
image.png

串口輸出與官方教程中差別很大娶吞,主要有以下3點:

  • 輸出內(nèi)容比官方教程多出了各模塊啟動情況。
  • 官方教程顯示的為msh械姻,而該程序輸出為finsh妒蛇,輸入list_device,返回的輸出與官方教程不一致楷拳。
  • 如果使用官方教程中的串口調(diào)試助手putty绣夺,則無法接收到輸出。

??第1點是因為apollo的bsp默認(rèn)打開了宏RT_USING_COMPONENTS_INIT欢揖,這個宏負(fù)責(zé)輸出具體的初始化過程陶耍,不管輸出成功還是失敗暫時不用管它。

??第2點是因為finsh支持兩種模式:C語言解釋器模式(為行文方便稱之為c-style)和 傳統(tǒng)命令行模式(此模式又稱為msh)她混。官方教程使用名為STM32F4xx-HAL的bsp物臂,該bsp采用的 傳統(tǒng)命令行模式,而名為STM32F429-apollo的bsp中使用的是C語言解釋器模式产上。使用Env工具按照下圖配置。左上角紅框為路徑蛾狗,下方紅框為需要打開的選項晋涣。
image.png

??第3點是因為stm32f429-Apollo開發(fā)板的USB-232的串口(即uart1)只能使用原子哥的XCOM V2.0接收,其它串口調(diào)試助手測試了SecureCRT 8.3沉桌、realterm谢鹊、PuTTY都無法接收。原因是正點原子的開發(fā)板的復(fù)位電路和串口相連留凭,導(dǎo)致使用其它串口調(diào)試助手時開發(fā)板無法正常復(fù)位佃扼,而使用正點原子的XCOM V2.0是由于軟件在打開串口的時候先發(fā)送了復(fù)位信號。(開發(fā)板中另外兩路使用DB9插頭的串口可以正常使用各種軟件0埂)

??重新使用Evn配置后兼耀,保存,退出求冷,輸入命令 scons --target=mdk5 -s 重新生成工程瘤运,編譯下載后可以看到出口輸出如下,與官方教程中一直匠题,成功拯坟!
image.png

加入代碼

??打開rt-thread學(xué)習(xí)準(zhǔn)備一文中下載的“RT-Thread應(yīng)用筆記資料(STM32F429阿波羅)”,在“串口數(shù)據(jù)應(yīng)用筆記”文件夾下有代碼 文件app_uart.c韭山、 app_uart.h郁季,將這兩個文件拷貝到項目文件夾stm32f429-apollo\applications目錄下冷溃。
??Env工具是通過SConscript文件來組織文件的,手動添加的文件會在下次使用Env工具時被刪除梦裂,因此修改SConscript文件才是正確的添加方法似枕!使用notepad++打開applications文件夾中的SConscript文件,并按照圖中位置添加app_uart.c塞琼,保存后退出菠净。

image.png

??使用Env命令行重新生成工程并打開,可以看到app_uart.c已經(jīng)成功添加到application目錄下
image.png

??在application.c文件添加有文件

#include "app_uart.h"

??使用如下函數(shù)代替application.c文件的rt_application_init()函數(shù)

int rt_application_init(void)
{
    rt_thread_t tid;

    tid = rt_thread_create("init",
        rt_init_thread_entry, RT_NULL,
        2048, RT_THREAD_PRIORITY_MAX/3, 20);

    if (tid != RT_NULL)
        rt_thread_startup(tid);
    
    tid = rt_thread_create("uart",
                    uart_thread_entry, 
                    RT_NULL,
                    1024, 
                    2, 
                    10);
    /* 創(chuàng)建成功則啟動線程 */
    if (tid != RT_NULL)
        rt_thread_startup(tid);

    return 0;
}

??編譯下載彪杉,打開兩個串口調(diào)試助手XCOM V2.0和Realterm(不用putty的原因上文已經(jīng)解釋)毅往,按照自己計算機(jī)顯示的com口編號配置串口助手(串口2記得連接電腦呀),開發(fā)板上電后派近,在Realterm中輸入EmbededLife攀唯,每個字符輸入后會顯示比該字符ASCII碼大1的字符,兩個串口調(diào)試助手的顯示如下:


image.png

打完收工

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渴丸,一起剝皮案震驚了整個濱河市侯嘀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谱轨,老刑警劉巖戒幔,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異土童,居然都是意外死亡诗茎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門献汗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敢订,“玉大人,你說我怎么就攤上這事罢吃〕纾” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵尿招,是天一觀的道長矾柜。 經(jīng)常有香客問我,道長就谜,這世上最難降的妖魔是什么把沼? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮吁伺,結(jié)果婚禮上饮睬,老公的妹妹穿的比我還像新娘。我一直安慰自己篮奄,他們只是感情好捆愁,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布割去。 她就那樣靜靜地躺著,像睡著了一般昼丑。 火紅的嫁衣襯著肌膚如雪呻逆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天菩帝,我揣著相機(jī)與錄音咖城,去河邊找鬼。 笑死呼奢,一個胖子當(dāng)著我的面吹牛宜雀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播握础,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼辐董,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了禀综?” 一聲冷哼從身側(cè)響起简烘,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎定枷,沒想到半個月后孤澎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡欠窒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年亥至,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贱迟。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖絮供,靈堂內(nèi)的尸體忽然破棺而出衣吠,到底是詐尸還是另有隱情,我是刑警寧澤壤靶,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布缚俏,位于F島的核電站,受9級特大地震影響贮乳,放射性物質(zhì)發(fā)生泄漏忧换。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一向拆、第九天 我趴在偏房一處隱蔽的房頂上張望亚茬。 院中可真熱鬧,春花似錦浓恳、人聲如沸刹缝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梢夯。三九已至言疗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颂砸,已是汗流浹背噪奄。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留人乓,地道東北人勤篮。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像撒蟀,于是被迫代替她去往敵國和親叙谨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348