0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PIC32MX470 溫濕度計(jì)+RTOS+GUI:MHC教程

電子工程師 ? 來源:網(wǎng)絡(luò)整理 ? 2018-02-01 03:48 ? 次閱讀

uCOS-III跑起來了,但是溫濕度計(jì)和OLED還沒到,打算用這段空窗期把串口調(diào)出來,順便熟悉一下這塊板卡的外設(shè)。在調(diào)試串口這一點(diǎn)上不得不吐槽一下PIC的開發(fā)板了,以前接觸的大多數(shù)原廠出品的CortexM開發(fā)板(FRDM系列、SAM4N、LPC系列)基本都是將debug接口和調(diào)試串口合成到了一個(gè)USB口,有的甚至集成了drag&drop功能,用戶就用一根USB線就可以完成所有的調(diào)試。但是PIC32MX470這塊板子的USB debug口只有debug功能,想用調(diào)試串口只能再接一根USB轉(zhuǎn)TTL的線,不方便。

先在板子自帶的Information sheet上找到串口的管腳,有UART1和UART2,但是無(wú)奈我是個(gè)硬件老白,連根帶針的杜邦線都沒有,只有兩頭都是孔的,只能用X32接口上的USART2了。

1

1. 首先還是先打開MHC(MPLAB Harmony Configurator),找到串口對(duì)應(yīng)的driver選項(xiàng)打開并做相應(yīng)的配置,我的配置如下

2

但是配置之后串口沒有任何輸出,在論壇里搜了相關(guān)的文章后才發(fā)現(xiàn)我這個(gè)硬件老白居然連Pin Settings都沒有配就想用串口,后來參考了wudianjun2001大俠文章中串口的配置方法

mod=viewthread&tid=57147&highlight=pic32%2Buart

2. 按Information Sheet中的pin對(duì)應(yīng)關(guān)系修改了Pin Configurations如下

3

然后生成代碼,驚喜地發(fā)現(xiàn)使能了RTOS后,生成的USART驅(qū)動(dòng)代碼中有了mutex的操作。生成的代碼主要包含以下幾個(gè)源文件,我為了自己的調(diào)試打印又加了bsp_ser.c這個(gè)文件用來輸出字符串

4

學(xué)習(xí)代碼后可知在SYS_Initialize中已經(jīng)根據(jù)用戶的配置調(diào)用了USART相關(guān)的初始化函數(shù)

5

所以使用時(shí)只需要直接調(diào)用drv_usart_mapping.c中的其他API就可以了,我添加的bsp_ser.c和bsp_ser.h中的代碼如下

#include “system/common/sys_common.h”

#include “system_config.h”

#include “system_definitions.h”

#include “bsp_ser.h”

static OS_SEM BSP_SerTxWait;

static DRV_HANDLE BSP_SerHandle;

void BSP_Ser_Tx_Callback (const SYS_MODULE_INDEX index);

void BSP_Ser_Init (CPU_INT32U baud_rate)

{

OS_ERR err;

OSSemCreate(&BSP_SerTxWait, “Serial Tx Wait”, 0, &err);

BSP_SerHandle = DRV_USART_Open(DRV_USART_INDEX_0, 0);

DRV_USART_ByteTransmitCallbackSet(BSP_SerHandle, BSP_Ser_Tx_Callback);

DRV_USART_BaudSet(BSP_SerHandle, baud_rate);

}

void BSP_Ser_Tx_Callback (const SYS_MODULE_INDEX index)

{

OS_ERR err;

OSSemPost(&BSP_SerTxWait, OS_OPT_POST_1, &err); /* Post to the semaphore */

}

int BSP_Ser_WrByte (int ch)

{

OS_ERR err;

DRV_USART_WriteByte(BSP_SerHandle, (CPU_INT08U)ch);

OSSemPend(&BSP_SerTxWait, 0, OS_OPT_PEND_BLOCKING, 0, &err);

return ch;

}

void BSP_Ser_WrStr (CPU_CHAR *p_str)

{

OS_ERR err;

if (p_str == (CPU_CHAR *)0) {

return;

}

while ((*p_str) != (CPU_CHAR )0) {

if (*p_str == ASCII_CHAR_LINE_FEED) {

BSP_Ser_WrByte(ASCII_CHAR_CARRIAGE_RETURN);

BSP_Ser_WrByte(ASCII_CHAR_LINE_FEED);

p_str++;

} else {

BSP_Ser_WrByte(*p_str++);

}

}

}

3. 在_SYS_Tasks任務(wù)中添加需要串口打印字符的代碼

6

后來又看了些文章,并做了實(shí)驗(yàn)才發(fā)現(xiàn),其實(shí)只需要在MHC中配置好串口生產(chǎn)代碼后就可以使用printf了,根本不需要用戶自己添加其他的驅(qū)動(dòng)代碼

7

串口和板子按如下方式連接,串口打印正常輸出

161439tonn257xjz07p0o0

最后扯一點(diǎn)題外話,也是上篇文章最后留的一個(gè)梗。使能uCOS之后我就隱約地感覺到,用MHC配置工程,幾乎所有的代碼只需要在正確配置后點(diǎn)一下Generate Code按鈕就出來了,留給用戶做的就是按自己的需求寫app的代碼了。這種移植的活兒在以前都是要消耗數(shù)人天甚至數(shù)人周的工作,而現(xiàn)在一個(gè)新手也可以簡(jiǎn)單地改改配置就將RTOS移植過來(假如MHC做得更好);這讓我不由地感覺到了底層軟件工程師的職業(yè)生涯危機(jī)。尤其在添加了USART驅(qū)動(dòng)之后,更加覺得驅(qū)動(dòng)的工作就只剩下了在IDE里改配置了,因?yàn)榈侥壳盀橹梗?a href="http://www.ttokpm.com/v/tag/137/" target="_blank">芯片手冊(cè)我只看過memory map。這樣再發(fā)展些時(shí)日是不是就不需要做驅(qū)動(dòng)和BSP的工程師了?難道這就是人工智能對(duì)碼農(nóng)的影響?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PIC32MX470
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1801
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    溫濕度監(jiān)測(cè)解決方案

    在現(xiàn)代工業(yè)、農(nóng)業(yè)、醫(yī)療及居家環(huán)境中,溫濕度監(jiān)測(cè)已成為保障生產(chǎn)質(zhì)量、提升生活品質(zhì)、確保環(huán)境安全不可或缺的一環(huán)。有效的溫濕度監(jiān)測(cè)解決方案,不僅能夠預(yù)防因極端條件引發(fā)的損失,優(yōu)化資源利用,提高整體運(yùn)營(yíng)效率
    的頭像 發(fā)表于 09-04 17:16 ?167次閱讀

    溫濕度傳感器怎么調(diào)試

    溫濕度傳感器是一種廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、氣象、科研等領(lǐng)域的傳感器,用于測(cè)量環(huán)境的溫度和濕度。在實(shí)際應(yīng)用中,溫濕度傳感器的調(diào)試是非常重要的,它直接影響到測(cè)量結(jié)果的準(zhǔn)確性和穩(wěn)定性。 一、溫濕度
    的頭像 發(fā)表于 08-19 15:04 ?300次閱讀

    溫濕度監(jiān)測(cè)系統(tǒng)應(yīng)用

    在現(xiàn)代化工業(yè)生產(chǎn)、倉(cāng)儲(chǔ)管理、農(nóng)業(yè)種植以及智能家居等領(lǐng)域,溫濕度監(jiān)測(cè)已成為不可或缺的一環(huán)。溫濕度作為環(huán)境控制的關(guān)鍵因素,直接影響著產(chǎn)品質(zhì)量、存儲(chǔ)安全、作物生長(zhǎng)效率以及居住舒適度。因此,一套高效、精準(zhǔn)
    的頭像 發(fā)表于 07-26 16:15 ?231次閱讀

    藥品倉(cāng)庫(kù)溫濕度監(jiān)控系統(tǒng)

    藥品倉(cāng)庫(kù)作為藥品儲(chǔ)存的主要場(chǎng)所,需要特定的溫度和濕度條件,其環(huán)境條件的控制直接影響到藥品的質(zhì)量和療效,以保持其穩(wěn)定性和有效性。因此,建立一個(gè)高效、可靠的藥品倉(cāng)庫(kù)溫濕度監(jiān)控系統(tǒng),對(duì)于確保藥品的安全儲(chǔ)存
    的頭像 發(fā)表于 07-26 10:12 ?223次閱讀

    庫(kù)房溫濕度自動(dòng)監(jiān)測(cè)系統(tǒng)

    倉(cāng)儲(chǔ)、庫(kù)房在管理上,環(huán)境控制都是重中之重。庫(kù)房溫濕度自動(dòng)監(jiān)測(cè)系統(tǒng)作為一種更為便捷的解決方案,已經(jīng)得到廣泛的應(yīng)用。 庫(kù)房溫濕度自動(dòng)監(jiān)測(cè)系統(tǒng)通過集成傳感器、數(shù)據(jù)采集器、傳輸設(shè)備和管理平臺(tái)等硬件設(shè)備,實(shí)現(xiàn)
    的頭像 發(fā)表于 07-09 18:00 ?526次閱讀

    糧倉(cāng)溫濕度監(jiān)測(cè)解決方案

    溫濕度是影響糧食儲(chǔ)存品質(zhì)的重要因素。過高的溫度會(huì)加速糧食的呼吸作用,導(dǎo)致水分散失和品質(zhì)下降。因此,糧倉(cāng)的溫濕度管理,成為了確保糧食儲(chǔ)存安全和質(zhì)量穩(wěn)定的關(guān)鍵因素。方便及時(shí)發(fā)現(xiàn)糧倉(cāng)的發(fā)熱點(diǎn),及時(shí)減少糧食
    的頭像 發(fā)表于 07-04 16:37 ?228次閱讀

    想要準(zhǔn)確地測(cè)量環(huán)境溫濕度?溫濕度傳感器是關(guān)鍵!

    ? 溫濕度是生產(chǎn)生活中最重要的環(huán)境指標(biāo)之一,不僅人需要在適宜的溫濕度條件下保持良好的精神狀態(tài)和敏捷的思維,食品、藥品、各種儀器設(shè)備等都對(duì)環(huán)境溫濕度有特殊的要求。基于對(duì)環(huán)境溫濕度的要求,
    的頭像 發(fā)表于 07-04 08:48 ?334次閱讀

    無(wú)線溫濕度監(jiān)控系統(tǒng)

    無(wú)線溫濕度監(jiān)控系統(tǒng),作為現(xiàn)代環(huán)境監(jiān)測(cè)技術(shù)的杰出代表,已經(jīng)廣泛應(yīng)用于各個(gè)行業(yè)和領(lǐng)域。利用無(wú)線通信技術(shù),實(shí)現(xiàn)對(duì)環(huán)境溫濕度的實(shí)時(shí)、遠(yuǎn)程監(jiān)控,從而保障了各種設(shè)備和物品的安全運(yùn)行和保存。 無(wú)線溫濕度控制系統(tǒng)
    的頭像 發(fā)表于 05-30 16:43 ?583次閱讀

    應(yīng)用案例 | 如何實(shí)時(shí)監(jiān)測(cè)和管理冷鏈倉(cāng)庫(kù)溫濕度?

    宏集溫濕度監(jiān)測(cè)解決方案幫助客戶實(shí)時(shí)監(jiān)測(cè)冷鏈倉(cāng)庫(kù)的溫濕度,保障貨物的品質(zhì)和安全,降低貨損并提高效率。
    的頭像 發(fā)表于 05-23 14:13 ?353次閱讀
    應(yīng)用案例 | 如何實(shí)時(shí)監(jiān)測(cè)和管理冷鏈倉(cāng)庫(kù)<b class='flag-5'>溫濕度</b>?

    小白測(cè)功耗之藍(lán)牙溫濕度傳感器

    小小的溫濕度計(jì),是人們?nèi)粘I钪械闹悄苄褪?,也是極為典型的電池供電類低功耗產(chǎn)品。通常采用紐扣電池供電,可方便地?cái)[放或粘貼于各種應(yīng)用場(chǎng)景。市面上常見的溫濕度計(jì),功耗到底有多低?今天,我們就用即將
    的頭像 發(fā)表于 04-16 08:04 ?840次閱讀
    小白測(cè)功耗之藍(lán)牙<b class='flag-5'>溫濕度</b>傳感器

    溫濕度傳感器有哪些應(yīng)用場(chǎng)景?

    溫濕度傳感器在眾多領(lǐng)域,特別是在實(shí)時(shí)記錄溫濕度變化的工作中最為廣泛。溫濕度傳感器可以根據(jù)所記錄的內(nèi)容,對(duì)其進(jìn)行科學(xué)有效的管理、分析和歸納。下面我們就溫濕度傳感器在不同場(chǎng)景中的應(yīng)用做下介
    的頭像 發(fā)表于 02-19 16:28 ?961次閱讀
    <b class='flag-5'>溫濕度</b>傳感器有哪些應(yīng)用場(chǎng)景?

    溫濕度傳感器工作原理 溫濕度傳感器的接線方法

    溫濕度傳感器是一種用于測(cè)量環(huán)境溫度和相對(duì)濕度的裝置。它通常用于工業(yè)、農(nóng)業(yè)、氣象、室內(nèi)空調(diào)等領(lǐng)域。本文將詳細(xì)介紹溫濕度傳感器的工作原理和接線方法。 一、溫濕度傳感器的工作原理
    的頭像 發(fā)表于 02-14 18:00 ?7544次閱讀

    溫濕度監(jiān)測(cè)系統(tǒng)解決方案應(yīng)用場(chǎng)景

    隨著生活水平質(zhì)量不斷提高,因溫度引發(fā)的各行業(yè)越來越重視產(chǎn)品生產(chǎn)、物品設(shè)備、存儲(chǔ)等溫濕度管理環(huán)境。科學(xué)應(yīng)用溫濕度監(jiān)測(cè)系統(tǒng),確保在儲(chǔ)運(yùn)過程中或?qū)嶒?yàn)、生產(chǎn)制造等過程中,有無(wú)任何危及產(chǎn)品安全的事件發(fā)生
    的頭像 發(fā)表于 01-24 16:21 ?352次閱讀

    Arduino篇—自制溫濕度測(cè)量?jī)x

    DHT11數(shù)字溫濕度傳感器:DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器
    的頭像 發(fā)表于 11-02 10:16 ?1525次閱讀
    Arduino篇—自制<b class='flag-5'>溫濕度</b>測(cè)量?jī)x

    基于51單片機(jī)和AHT10溫濕度傳感器的溫濕度計(jì)源碼

    一款基于51單片機(jī)和AHT10溫濕度傳感器的溫濕度計(jì)源碼。
    發(fā)表于 10-09 08:39