0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PIC32MX470 温湿度计+RTOS+GUI:MHC教程

电子工程师 来源:网络整理 2018-02-01 03:48 次阅读

uCOS-III跑起来了,但是温湿度计和OLED还没到,打算用这段空窗期把串口调出来,顺便熟悉一下这块板卡的外设。在调试串口这一点上不得不吐槽一下PIC的开发板了,以前接触的大多数原厂出品的CortexM开发板(FRDM系列、SAM4N、LPC系列)基本都是将debug接口和调试串口合成到了一个USB口,有的甚至集成了drag&drop功能,用户就用一根USB线就可以完成所有的调试。但是PIC32MX470这块板子的USB debug口只有debug功能,想用调试串口只能再接一根USB转TTL的线,不方便。

先在板子自带的Information sheet上找到串口的管脚,有UART1和UART2,但是无奈我是个硬件老白,连根带针的杜邦线都没有,只有两头都是孔的,只能用X32接口上的USART2了。

1

1. 首先还是先打开MHC(MPLAB Harmony Configurator),找到串口对应的driver选项打开并做相应的配置,我的配置如下

2

但是配置之后串口没有任何输出,在论坛里搜了相关的文章后才发现我这个硬件老白居然连Pin Settings都没有配就想用串口,后来参考了wudianjun2001大侠文章中串口的配置方法

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

2. 按Information Sheet中的pin对应关系修改了Pin Configurations如下

3

然后生成代码,惊喜地发现使能了RTOS后,生成的USART驱动代码中有了mutex的操作。生成的代码主要包含以下几个源文件,我为了自己的调试打印又加了bsp_ser.c这个文件用来输出字符串

4

学习代码后可知在SYS_Initialize中已经根据用户的配置调用了USART相关的初始化函数

5

所以使用时只需要直接调用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任务中添加需要串口打印字符的代码

6

后来又看了些文章,并做了实验才发现,其实只需要在MHC中配置好串口生产代码后就可以使用printf了,根本不需要用户自己添加其他的驱动代码

7

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

161439tonn257xjz07p0o0

最后扯一点题外话,也是上篇文章最后留的一个梗。使能uCOS之后我就隐约地感觉到,用MHC配置工程,几乎所有的代码只需要在正确配置后点一下Generate Code按钮就出来了,留给用户做的就是按自己的需求写app的代码了。这种移植的活儿在以前都是要消耗数人天甚至数人周的工作,而现在一个新手也可以简单地改改配置就将RTOS移植过来(假如MHC做得更好);这让我不由地感觉到了底层软件工程师的职业生涯危机。尤其在添加了USART驱动之后,更加觉得驱动的工作就只剩下了在IDE里改配置了,因为到目前为止,芯片手册我只看过memory map。这样再发展些时日是不是就不需要做驱动和BSP的工程师了?难道这就是人工智能对码农的影响?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PIC32MX470
    +关注

    关注

    0

    文章

    5

    浏览量

    1801
收藏 人收藏

    评论

    相关推荐

    温湿度监测解决方案

    在现代工业、农业、医疗及居家环境中,温湿度监测已成为保障生产质量、提升生活品质、确保环境安全不可或缺的一环。有效的温湿度监测解决方案,不仅能够预防因极端条件引发的损失,优化资源利用,提高整体运营效率
    的头像 发表于 09-04 17:16 269次阅读

    温湿度传感器怎么调试

    温湿度传感器是一种广泛应用于工业、农业、气象、科研等领域的传感器,用于测量环境的温度和湿度。在实际应用中,温湿度传感器的调试是非常重要的,它直接影响到测量结果的准确性和稳定性。 一、温湿度
    的头像 发表于 08-19 15:04 630次阅读

    温湿度监测系统应用

    在现代化工业生产、仓储管理、农业种植以及智能家居等领域,温湿度监测已成为不可或缺的一环。温湿度作为环境控制的关键因素,直接影响着产品质量、存储安全、作物生长效率以及居住舒适度。因此,一套高效、精准
    的头像 发表于 07-26 16:15 326次阅读

    药品仓库温湿度监控系统

    药品仓库作为药品储存的主要场所,需要特定的温度和湿度条件,其环境条件的控制直接影响到药品的质量和疗效,以保持其稳定性和有效性。因此,建立一个高效、可靠的药品仓库温湿度监控系统,对于确保药品的安全储存
    的头像 发表于 07-26 10:12 293次阅读

    库房温湿度自动监测系统

    仓储、库房在管理上,环境控制都是重中之重。库房温湿度自动监测系统作为一种更为便捷的解决方案,已经得到广泛的应用。 库房温湿度自动监测系统通过集成传感器、数据采集器、传输设备和管理平台等硬件设备,实现
    的头像 发表于 07-09 18:00 621次阅读

    粮仓温湿度监测解决方案

    温湿度是影响粮食储存品质的重要因素。过高的温度会加速粮食的呼吸作用,导致水分散失和品质下降。因此,粮仓的温湿度管理,成为了确保粮食储存安全和质量稳定的关键因素。方便及时发现粮仓的发热点,及时减少粮食
    的头像 发表于 07-04 16:37 288次阅读

    想要准确地测量环境温湿度温湿度传感器是关键!

    温湿度是生产生活中最重要的环境指标之一,不仅人需要在适宜的温湿度条件下保持良好的精神状态和敏捷的思维,食品、药品、各种仪器设备等都对环境温湿度有特殊的要求。基于对环境温湿度的要求,
    的头像 发表于 07-04 08:48 446次阅读

    无线温湿度监控系统

    无线温湿度监控系统,作为现代环境监测技术的杰出代表,已经广泛应用于各个行业和领域。利用无线通信技术,实现对环境温湿度的实时、远程监控,从而保障了各种设备和物品的安全运行和保存。 无线温湿度控制系统
    的头像 发表于 05-30 16:43 686次阅读

    档案库房温湿度调控系统功能说明

    库房内的温湿度与档案的保存密切相关,温湿度不适宜都会影响档案的保存时间,对档案保存造成影响。为了使档案库房的温湿度等符合档案储存的要求,需要采取一定的措施,对档案库房的温湿度进行控制和
    的头像 发表于 05-28 16:12 338次阅读

    应用案例 | 如何实时监测和管理冷链仓库温湿度

    宏集温湿度监测解决方案帮助客户实时监测冷链仓库的温湿度,保障货物的品质和安全,降低货损并提高效率。
    的头像 发表于 05-23 14:13 416次阅读
    应用案例 | 如何实时监测和管理冷链仓库<b class='flag-5'>温湿度</b>?

    小白测功耗之蓝牙温湿度传感器

    小小的温湿度计,是人们日常生活中的智能小帮手,也是极为典型的电池供电类低功耗产品。通常采用纽扣电池供电,可方便地摆放或粘贴于各种应用场景。市面上常见的温湿度计,功耗到底有多低?今天,我们就用即将
    的头像 发表于 04-16 08:04 1052次阅读
    小白测功耗之蓝牙<b class='flag-5'>温湿度</b>传感器

    温湿度传感器有哪些应用场景?

    温湿度传感器在众多领域,特别是在实时记录温湿度变化的工作中最为广泛。温湿度传感器可以根据所记录的内容,对其进行科学有效的管理、分析和归纳。下面我们就温湿度传感器在不同场景中的应用做下介
    的头像 发表于 02-19 16:28 1173次阅读
    <b class='flag-5'>温湿度</b>传感器有哪些应用场景?

    温湿度传感器工作原理 温湿度传感器的接线方法

    温湿度传感器是一种用于测量环境温度和相对湿度的装置。它通常用于工业、农业、气象、室内空调等领域。本文将详细介绍温湿度传感器的工作原理和接线方法。 一、温湿度传感器的工作原理
    的头像 发表于 02-14 18:00 8585次阅读

    较为全面的仓库温湿度管理知识

    温湿度管理是仓库管理中的重要环节,它关乎着货品质量的安全。同时,做好温湿度管理更是订单能够及时履行的关键所在。很多仓库管理人员大致了解一些关于温湿度管理方面的知识,但还不够全面。搜集总结一些有关仓库
    的头像 发表于 01-27 00:00 1894次阅读
    较为全面的仓库<b class='flag-5'>温湿度</b>管理知识

    温湿度监测系统解决方案应用场景

    随着生活水平质量不断提高,因温度引发的各行业越来越重视产品生产、物品设备、存储等温湿度管理环境。科学应用温湿度监测系统,确保在储运过程中或实验、生产制造等过程中,有无任何危及产品安全的事件发生
    的头像 发表于 01-24 16:21 494次阅读