开放原子线下训练营---STM32H7搭载TobudOS开发心得

news2025/1/23 4:53:45

导语:

本次线下活动是以STM32H7为核心的一个功能强大的开发板,不仅支持Audio,HDMI,还支持4G或者WiFi模块,也可以外接屏幕,本次线下训练营是以4G模块进行开发。
线下的实物开发板如下所示:
在这里插入图片描述

注意:上面的PC、MCU的切换,一定要在MCU,才会有串口数据输出。

其硬件资源的介绍如下所示:
在这里插入图片描述
官网开发板特性:

  • 内置 TobudOS 开源物联网操作系统
  • 意法半导体高性能处理器,最高主频 480M
  • 1M RAM;
  • 256Mbits SDRAM;
  • 128K 片上Flash;64MB qspi flash 128MB spi flash
  • 板载 Type-C 接口 Stlink V2
  • 仿真器 板载 PCIE 接口,可扩展 4G 类物联网模组
  • 板载物联网俱乐部 WAN Interface 接口,可支持
    NB-IoT、WiFi、4G cat1、LoRa 等模组
  • 板载物联网俱乐部 E53 Interface 接口,可扩展全系 E53 传感器;
  • 板载标准 24P DVP 摄像头接口,可支持最高 500 万像素摄像头; 板载 RGB 显示接口,可转换 HDMI 输出;
  • 板载高性能音频解码芯片,可做语音识别测试;
  • 预留 SD 卡、用户按键、SPI Flash
  • 调试 ARM Cortex M 核还需要仿真器,EVB_AIoT_STM32自带 Stlink V2 仿真器,如果您的开发板或者芯片模组没有板载仿真器,就需要连接外置的仿真器,如 J-Link、U-Link 之类的。

其官网的指导文档地址为:
代码仓地址:
https://atomgit.com/OpenAtomFoundation/TobudOS(内含丰富学习视频,请自行下载观看)
训练营参考代码:
https://atomgit.com/tobudos/DeveloperTrainingCamp2023
训练营实验手册
https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md

一、移植代码

本次线下活动,在之前就已经搭建了环境,能跑起来示例程序。
具体的环境搭建在训练营实验手册链接中有着详细的介绍。其中特别注意的是,MDK的版本需要和指导文档中相同,当时在现场看到很多同学使用了最新版本的MDK,缺少一些插件,导致代码无法运行,建议使用 5.28a版本,其他版本也需要自己进行一些设置。
现场主要是为了熟悉一下TobudOS的整体使用流程,对代码的编写比较少,现场的大佬都已经把相关代码给到我们进行操作。
代码一定要用完整仓库中的代码,使用git clone的方式下载,直接点击下载有可能会有一些奇奇怪怪的错误,代码参考下面的链接:
https://atomgit.com/OpenAtomFoundation/TobudOS
打开代码之后,将整体代码先build一次,保证整个流程没有问题。
然后就是加入E53_SC1的驱动程序,右键add即可:

在这里插入图片描述
上面驱动放置的文件夹,注意将路径导入到C/C++
在这里插入图片描述
在TobudOS的WiFi与4G的配置中,采用了宏定义的切换方法,很方便进行切换:

#define USE_EC600S
//#define USE_ESP8266

#if defined(USE_ESP8266)
#include "esp8266.h"

#elif defined(USE_EC600S)
#include "ec600s.h"
#endif

接下来就需要配置腾讯云。

二、腾讯云的相关配置

直接访问下面的链接到腾讯云网站:
https://cloud.tencent.com/product/iotexplorer
使用自己的账号进行登录,请注意需要实名认证。
找到物联网开发平台
在这里插入图片描述
点击新增实例
在这里插入图片描述
然后,新建一个产品
在这里插入图片描述
新建完成后就可以看到下面的项目
在这里插入图片描述
点击导入物模型,导入JSON模型
在这里插入图片描述
具体代码如下:

{
  "version": "1.0",
  "properties": [
    {
      "id": "power_switch",
      "name": "电灯开关",
      "desc": "控制电灯开灭",
      "required": true,
      "mode": "rw",
      "define": {
        "type": "bool",
        "mapping": {
          "0": "关",
          "1": "开"
        }
      }
    },
    {
      "id": "lum",
      "name": "光传感器",
      "desc": "上报现场光传感器数据",
      "mode": "r",
      "define": {
        "type": "int",
        "min": "0",
        "max": "9999",
        "start": "0",
        "step": "5",
        "unit": "lm"
      },
      "required": false
    },
    {
      "id": "lac",
      "name": "地区区域码",
      "desc": "地区区域码",
      "required": true,
      "mode": "r",
      "define": {
        "type": "int",
        "unit": "",
        "step": "1",
        "min": "0",
        "max": "32",
        "start": "0"
      }
    },
    {
      "id": "cid",
      "name": "基站码",
      "desc": "基站码",
      "required": true,
      "mode": "r",
      "define": {
        "type": "int",
        "unit": "",
        "step": "1",
        "min": "0",
        "max": "32",
        "start": "0"
      }
    }
  ],
  "events": [],
  "actions": [],
  "profile": {
    "ProductId": "KM4CEY91YP",
    "CategoryId": "3"
  }
}

下面就是将对应的密钥,用户名填写到MQTT对应的h文件中。
在这里插入图片描述
在这里插入图片描述

这里文档中有详细的对应。

三、下载调试

全部对应完成之后,就可以编译代码,将其下载到开发板中,下载事接入USB之后,需要安装对应的驱动,驱动官网下载即可,右键驱动安装本地就可以。安装完成后,如下所示。
在这里插入图片描述
下载代码时,可能还让升级驱动,直接点击Yes即可。
连接成功之后,在腾讯云就可以看到在线的状态。
在这里插入图片描述
点击调试 可直接在网页进行调试
在这里插入图片描述
点击二维码
手机微信小程序,找到腾讯连连,扫描二维码,注意首次可能需要创建家庭。
在这里插入图片描述
就会出现上图的一个远程开灯。
在这里插入图片描述
就可以直接在手机上点击开关控制灯的亮灭。
在这里插入图片描述

四、感悟

开放原子和腾讯真的非常nice,创造了这么好的氛围,还免费赠送价值这么高的开发板,能够面对面的和各位大佬进行交流,有一个很好的开发氛围。
目前嵌入式的各种搭建与配置越来越简单,之前自己通过云服务器搭建MQTT,需要耗费很多时间和金钱,现在有了越来越简单的办法,应该感谢各位开发者的不断努力!
现场调试的题目比较简单,但是还是很多开发者事先没有准备好环境,或者是配置了一个错误的环境。在所有的开发中也要事先准备好,嵌入式的环境搭建确实是一个比较麻烦的事情,有时候换一个版本就需要多做很多的工作,所以还是需要认真阅读参考手册和文档。感谢腾讯与开放原子的大力支持!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法练习Day19 (Leetcode/Python-二叉树)

108. Convert Sorted Array to Binary Search Tree Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree. 思路: 一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的…

微软官方镜像下载大全(windows iso 官方镜像)

原本只是想下一个Windows Server 2022中文版的镜像,后面发现要么就是慢得一批的某盘,要么就是磁力,我想直接下载简简单单,找了一圈没有找到。官网下载需要注册、登录乱七八糟,最终终于找到下载方法了,适用于…

Linux系统LVS+Keepalived群集

目录 一、概述 (一)群集特性 1.负载均衡 2.健康检查(探针) 3.故障转移 (二)Keepalived 1.作用 (1)支持故障自动转移 (2)支持节点健康状态检…

《软件方法(下)》8.2.4 类和属性的命名

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.2 建模步骤C-1 识别类和属性 8.2.4 类和属性的命名 8.2.4.2 关于DDD话语中的“通用语言” DDD(领域驱动设计)话语中有“通用语言(Ubiquitous L…

浅谈Redis分布式锁(上)

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 不论面试还是实际工作中…

51单片机模数转换ADC原理与代码一

51单片机模数转换ADC原理与代码一 1.概述 这篇文章是模数转换的入门文章,这篇文章主要介绍模数的概念、原理、核心指标、专业术语,以及一个模数转换的实例代码实现检测电位器的数值变化。 2.ADC介绍 2.1.ADC概念 ADC(Analog-to-Digital Converter)是…

计算机的工作原理(上)

1. 计算机发展史 计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。(以下是计算机的发展历程) 1、公元前2500 年前,算盘已经出现了;除此之外&#xff0c…

使用教程之【SkyWant.[2304]】路由器操作系统,破解移动【Netkeeper】校园网【小白篇】

许多高校目前饱受Netkeeper认证的痛苦,普通路由器无法使用, 教你利用SkyWant的Netkeeper认证软件来使你的SkyWant路由器顺利认证上网,全宿舍又可以合作共赢了! 步骤一:正确连接网线,插电开机 正确连接网…

字符设备驱动开发-注册-设备文件创建

一、字符设备驱动 linux系统中一切皆文件 1、应用层: APP1 APP2 ... fd open("led驱动的文件",O_RDWR); read(fd); write(); close(); 2、内核层: 对灯写一个驱动 led_driver.c driver_open(); driver_read(); driver_write(…

2023/12/21作业

思维导图 代码 .text .global _start _start: 灯1 gpio时钟使能 [4]->1 0x5000A28 LDR R0,0x50000A28 指定寄存器地址 LDR R1,[R0]将寄存器取出放到R1 ORR R1,R1,#(0x1<<4)将第四位设置为1 STR R1,[R0]读取R0寄存器到R1 PE…

Echarts饼图tooltip渐变色,内部legend百分比保留整数方法

业务场景&#xff1a;1、tooltip的背景需要渐变色&#xff0c;写 html 标签&#xff0c; 2、饼图内部的百分比需要保留整数 &#xff0c;使用formatter&#xff0c; export function genChartPieOption(pieData) {const res {replaceMerge: [series,], // 解决刷新之后y轴丢失…

Prometheus-JVM

一. JVM监控 通过 jmx_exporter 启动端口来实现JVM的监控 Github Kubernetes Deployment Java 服务&#xff0c;修改 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar# 编写配置文件&#xff0…

推箱子小游戏

--print("开发流程步骤&#xff1a;I、绘制推箱子地图并初始化 ----- 几*几大小的地图 \n\n II、根据宏定义和推箱子地图上的数字来选择不同的图形\n\n III、获取玩家坐标 -----------重点\n\n …

【SSM】SSM整合

SSM 整合 文章目录 SSM 整合1. 核心问题明确1.1 第一问&#xff1a;SSM整合需要几个IoC容器&#xff1f;1.2 第二问&#xff1a;每个IoC容器对应哪些类型组件&#xff1f;1.3 第三问&#xff1a;IoC容器之间关系和调用方向&#xff1f;1.4 第四问&#xff1a;具体多少配置类以及…

随机问卷调查数据的处理(uniapp)

需求&#xff1a;问卷调查 1.返回的数据中包含单选、多选、多项文本框、单文本框、图片上传 2.需要对必填的选项进行校验 3.非必填的多项文本框内容 如果不填写 不提交 表单数据格式 res{"code": 0,"msg": null,"data": [{"executeDay&…

CSS overflow-anchor

overflow-anchor 为了认识这个属性, 我们需要先看一种常见的现象. 即在网页加载中, 图片常常比文字加载更慢, 这样图片加载完成后可能会将文字向下顶. 比如下图演示 <div class"overflow"><img id"bg" src"" height"150" al…

前端页面资源放入oss 对象存储问题

1.需求 当我们做的是微信公众号的时候 需要微信重定向登录 在此时 我们需要在微信后台配置重定向域名 但是微信后台只能配置三个 如果有很多H5 公众号重定向登录的需求 我们该怎么做呢 2.解决 肯定我们需要配置 首页的 一般前端打包项目 都是由index.html 当然 我们实现 都是…

Linux:sudo给予账户特定的权限

我们某些用户权限比较低&#xff0c;如果我们他们的权限提高&#xff0c;或者假如搞权限的组&#xff0c;那么会大大减少安全性&#xff0c;我们可以使用sudo对他们开放指定的命令 我这里有 a1—3 3个用户&#xff0c;现在我切换到a1执行一下重启的命令 发现我们这个用户并无…

DSC2803X,DSP Pin2Pin with Ti Parts

一&#xff0c;产品特性 高能效 32 位处理器(H28x 内核)  主频 120MHz&#xff08;周期 8.33ns&#xff09;  哈佛(Harvard) 总线架构  硬件乘法/除法单元  4/6 通道高速 DMA  快速中断响应和处理  统一存储器编程模型  高效代码&#xff08;使用 C/C和汇编语言&…

docker容器内 获取宿主机ip

可以使用命令 --add-host jargatewayip:192.168.0.47 \ 需要注意,这里不能是 127.0.0.1 ,所以要找到服务器局域网的ip 命令示例 docker run -it \-p 80:80 \-p 443:443 \--name nginx \--network app --hostname nginx \-e TZAsia/Shanghai \--add-host jargatewayip:192.16…