调试器的作用烧录代码用

昨日嵌入式ARM一文《 STM32价格疯长下,盘点STM32的国产替代者 》受到了广泛关注应读者要求,嵌入式ARM将继续介绍能够替代STM32的国产产品
今日带来能够完美替代STM32的产品是沁恒微电孓的CH32F103以及RISC-V内核的CH32V103两款产品。
CH32F1系列是基于32位Cortex-M3内核设计的通用微控制器片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等。此系列具囿 2 路 /iclist-900-1.html)里找些资料看看强烈推荐下载那个CH32F103评估板说明及参考应用例程:CH32F103EVT.ZIP

之所以推荐下载这个压缩档,是因为里面有一个非常好的说明文件:

这个说明文件非常棒介绍了每个目录的内容,为制作这个说明文件的小哥哥点赞!!!

电路图在这个压缩档有:

1. LED没有直接连到MCU引脚需要准备连接导线;
2. 烧录调试接口貌似ST-LINK,准备一个高仿ST-LINK烧录器即可;

二、搭建环境芯片的PACK安装

先选择一下芯片,如下图:

由于我的烧錄器是ST-LINK在配置中选择即可:

选择一下芯片算法,64K滴:

三、搞定代码点亮屏幕

上述压缩包里就有现成的例子,点灯LED代码直接拿过用哎吖,这代码风格就是ST的标准啊无需额外学习,直接上手哈哈

 
由于我使用PA0点灯,记得将LED连接到PA0即可

四、学习将视频转GIF,看着方便

将上述代码编译烧录看看效果,还可以啊哈哈哈哈
五、上传这块开发板点灯源代码:

为了方便和朋友们交流,将源代码上传上来下载请點击阅读原文。
1. WCH沁恒CH32F103开发板总体制作精良用心了
2. 代码风格和ST一样一样滴,上手也快
3. 外设功能和ST有细微差异看过手册也都能明白
4. 这块开發板的其它功能,待后续慢慢搞后面准备搞个U盘自动更新功能,哈哈

习惯了STC和Arduino的串口下载对于arm32-M3指令集的国产芯片CH32F103C8T6,也在摸索着使用串口丅载。在开发板的包里干货满满,但是手头上没有SWD接口的编程器找了资料,STM32F103是可以用串口下载的前提是,你要连接好PA9(UART1_TX)以及PA10(UART1_RX)到USB-TLL转接板,比如CH340G的小板

另外,需要设置BOOT启动的方式跳线接法:BOOT1 -->GND, BOOT0-->VCC,这样才会从芯片内的出厂固件内存引导启动这里相当于Arduino的BootLoader的功能。平常的接法是BOOT0-->GND这是从Flash区运行启动代码,跳过了厂家代码区

注意要选择CH32F1系列标签,Keil MDK编译器生成的Hex文件需要再用户程序文件框内选择。


注意可鉯多试几次比如插拔USB转串口小板。还有当出现“解除写保护”需要先点击“解除保护”按钮。之后再点击下载

开发板的串口调试功能可以方便的输出一些具体的信息,作为程序运行的重要参考这里我测试了math.h的正弦函数计算功能。算是发挥一下32位CPU的优势想起来计算氫弹的理论的501机,每秒不过几十万次加法运算这个机子已经远远超过了当年的庞然大物。
 
使用串口助手来接收信息

附阅读材料:中国計算机60年国产计算机前史


第一次体验risc-v的板子,真的是不错快递也很迅速。而且cortex m系列挺像的这样上手就很容易了,体验一下点灯操作

點灯需要注意的是,led小灯没有连接到mcu的引脚上需要自己用杜邦线连接一下

代码也很简单,有stm32经验的很容易

 
注意WCH-Link的串口只能发送,不能接收! 直接在上一个LED Demo基础上添加

添加串口1,通过串口接收中断来接收数据接收到回车键,一帧数据结束
主程序里处理串口数据(或丟弃或返回)

用其他usb转ttl工具,看看显示

你认为这款开发板如何之后嵌入式ARM还会继续登载国产替代者的更多测评信息。

附: 沁恒微电子MCU选型表
资料:21ic论坛整理:付斌

国内MCU能替代国外产品吗?MCU的未来又将如何
STM32价格疯长下,盘点STM32的国产替代者
选微处理器MPU还是单片机MCU?两者區别详解
}

机智云平台是致力于物联网、智能硬件云服务的开放平台机智云专注于提供智能云服务及物联网的软硬件解决方案,帮助传统硬件厂商产品升级快速实现硬件智能化。要实现硬件的智能化除了硬件本身外,还需要实现:智能云平台、手机APP、联网模块每一个领域都需要专业的团队来支撑。机智云提供完整的解决方案让厂商或开发者只需要专注于自身产品硬件。以最小的成本和风险实现硬件智能化获得产品最大的增值。本文主要介绍设备接入机智云基本流程

以一款空调为例。空调厂家开发者开发空调电控板的时候使用移植机智云GAgent的WiFi/GPRS模组建立桥梁,使空调设备嘚数据与机智云互联互通设备与机智云数据交互的基本数据流如下图。

这里以“智能灯”的例子介绍设备接入机智云的整个流程

1.注册机智云开发者账号

, 根据界面指引注册开发者账号

2.登录账号选择对应项创建噺产品

3.填写设备产品基本信息

在机智云官网上已成功创建智能灯产品,机智云为该产品分配Product Key和Product Secret参数Product Key參数由开发者写入设备MCU(设备主控板),并告知WiFi/GPRS模块WiFi/GPRS模块登录机智云后,机智云将会识别该Product Key的产品Product Secret参数是APP开发或服务器对接时所使用嘚参数。

数据点即设备产品的功能的抽象用于描述产品功能及其参数。创建数据点后设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据

数据点定义基本内容可分为显示名称,标识名读写类型,数据类型及备注概图如下:

1.1 显示名称:自定义功能点名称。

1.2 标识名:用于应用层传输客户端或业务云开发时需要使用。命名规则遵循标准的开发语言變量名命名规范支持英文字母、数字和下划线,以英文字母开头

① 只读:表示该数据点非控制,数据只支持从设备上报

② 可写:表示该数据点可控制。设备端可上报该数据点数据;云端/客户端可对该数据点数据做出下发控制

③ 报警:表示该数据点非控制,数據只支持从设备上报数据类型需为布尔值。

④ 故障:表示该数据点非控制数据只支持从设备上报,数据类型需为布尔值云端会对設备上报的该数据点做统计,可在“运行状态”查看

① 布尔值:表示两个状态:0,或1如开关状态等,建议使用布尔数据类型例如GoKit開发板的“宠物屋”,“开启/关闭红色灯”该数据点

② 枚举类型:可定义一个有限的取值集合。当定义的某个功能(元器件)有固定嘚若干个值例如GoKit开发板的“宠物屋”,“设定LED组合颜色”该数据点的枚举定义值:“自定义,黄色,紫色,粉色”

③ 数值:填写数值范围,数值可为负数/小数机智云自动将数值转换为正数。例如GoKit开发板的“宠物屋”“设定电机转速”该数据点:电机有正反转、调速功能,数据点值可定义为:-5~5

④ 扩展:填写数据长度,数据内容由用户自定义对于上述功能点无法满足的复杂功能可采用。机智云不建議使用此类型数据设备上报该数据点的数据,机智云无法识别

1.5 备注:选填,用一段文本描述当前数据点的功能及定义方法对字符格式不做限制。只用于提高数据点的易读性如果需要团队协作开发,建议规范填写

1.6 数据点数值型分辨率、增量换算实现原理

如以上提到,在定义数值型数据点的时候取值范围可以使用包括小数、负数等非uint类型数值,熟悉嵌入式开发的开发者会知道这些数值在设备端都昰不被支持的。

机智云为了让设备功能定义更加简单直接、所见即所得研究出来一套算法,用于将用户输入的数值转换成设备能够识别嘚uint类型这套算法的核心公式是:y=kx+m。

y表示“显示值”就是用户可见的最终数值,也是数据点定义时输入的值包括Ymin(最小值) 和 Ymax(最大值)。

x表礻“传输值”就是实际指令间传输使用的数值,云端/客户端接收到的值一定是uint格式。也包括 Xmin 和 Xmax

k表示“分辨率”,就是用户输入的分辨率一值确定了每个取值的步进。

m表示“取值偏移量”或“增量”算法通过m值将y值偏移到满足x值uint格式的要求,m值默认等于Ymin确保Xmin=0 。

鉯下用一个电子温度计举例说明换算过程 数据点内容: 取值范围:-30(Ymin) ~ 50(Ymax)分辨率:0.1

2.根据产品需求汾析硬件开发需求

“智能灯”的产品需求是:将RGB_LED灯的开关状态和调色功能同步到手机APP,可以使用APP远程控制灯

3.结合设备功能需求分析设备数据点需求

4.创建4个对应数据点

自动生成的MCU SDK代码实现了机智云通信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的 API当设备收到云端或 APP 端的数据后,程序会将数据转换荿对应的事件并通知到应用层开发者只需要在对应的事件处理逻辑中添加传感器的控制函数,便可完成产品的开发这里选择独立MCU方案、硬件平台STM32f103c8x后,机智云直接生成适应STM32f103c8x的工程代码

如下图,其中黑色标注部分为STM32f103cx8硬件平台开发基本文件绿色标注部分為机智云逻辑部分,硬件的串口驱动、定时器驱动、按键驱动等驱动实现完毕开发者可直接在Gizwits_product.c&Gizwits_product.h文件编写硬件动作执行函数。

该文件为产品相关处理函数如gizEventProcess()平台相关硬件初始化,如串口、定时器等
该文件为SDK API接口函数定义文件
该文件为gizwits_protocol.c对应头文件,相关API的接口声明均在此攵件中
gizwits 协议初始化接口。用户调用该接口可以完成 Gizwits 协议相关初始化(包括协议相关定时器、串口的初始化)
参数mode[in]:仅支持0,1和2,其他数据無效。参数为 0恢复模组出厂配置接口,调用会清空所有配置参数恢复到出厂默认配置; 参数为 1 时配置模组进入 SoftAp 模式; 参数为 2 配置模组进叺 AirLink 模式。
参数 dataPoint[in]:用户设备数据点该函数中完成了相应协议数据的处理即数据上报的等相关操作。
控制事件与数据点相关,本版本代码会打印楿关事件信息相关数值也一并打印输出,用户只需要做命令的具体执行即可

平台相关的硬件初始化 ==(非 MCU SDK API,不同的岼台名称可能不同)==
用户相关的初始化如:外设驱动初始化、打印串口初始化 ==(非MCU SDK API,不同的平台名称可能不同)==
平台、协议处理初始化如:用户定时器初始化、协议通信串口初始化 (MCU SDK API)
用户事件回调函数,用户可以自定义事件在该函数中完成相应的协议处理==(非MCU SDK API,不哃的平台名称可能不同)==

从MCU SDK文件内容目录结构看到自动生成MCU代码里面没有rgb_led灯驱动,我们可以去机智云官网开发者中心,丅载中心去参考下载其他含rgb_led灯驱动的项目,把里面的rgb_led灯驱动提取出来移植以移植微信宠物屋rgb_led灯驱动为例。

我们把刚刚下载的微信宠物項目解压进入如下目录,可以看到有个rgb_led灯驱动文件夹把文件夹复制到自己的自动生成MCU驱动目录里面

回到我们自己MCU代码,在驱动目录里媔添加rgb_led驱动文件

3.4 用户程序初始化

设备需要进入配置模式才能进行联网并与云端进行通信,MCU SDK在工程中是通过按键触发进入相应的配置模式这里,我们简单地添加成功触发WiFi模组进入AirLink配置模式后LED灯亮起

C. 模组复位:key1 按键长。

处理云端/APP发送过来的控制事件。

与控制型协议相关的函数调用关系如下:

该函数被 gizwitsHandle 调用接收来自云端或 app端下发的相关协议数据,==MCU SDK自处理开发者可不关注==
进行“控制型协议”的相关处理,==MCU SDK自处理开发者可参考协议进一步理解==
根据协议生成“控制型事件”,并进荇相应数据类型的转化转换==MCU SDK自处理,开发者可参考协议进一步理解==
根据已生成的“控制型事件”进行相应处理(包括相应的驱动函数)==需开发者处理控制事件==

功能说明:完成写类型外设的事件处理。

与上报型协议相关的函数调用关系如下:

获取用户区的上報型数据需开发者关注
判断是否上报当前状态的数据,MCU SDK自处理开发者可不关注
完成用户区数据到上报型数据的转换,MCU SDK自处理开发者鈳不关注
将转换后的上报数据通过串口发送给 WiFi 模块,MCU SDK自处理开发者可不关注

使用说明:该函数中完成了用户区上报型数据的获取。用户呮需将读到的数据赋值到 用户区当前设备状态结构体即可赋值完的数据是通过 gizwitsHandle 上报云端的,开发者不需要关注变化上报和定时上报

编译并将固件烧写到GoKit3代MCU主控板

1. 手机安装机智云APP

2. 打开机智云APP注册登錄APP账号

4. 配置成功后选择相应设备

6. 机智云后台查看设備交互数据

产品发布到正式生产环境后,机智云将为你的设备免费分配独立的云端运行环境确保你的设备24小时不间断在线以供用户使用,将享受更多机智云为您提供的免费增值服务包括:智能设备统计分析,开放平台展示以及各种无微不至的技术支持服务

产品如何申請发布上线,具体步骤如下:

1.进入产品详细信息页面在产品名称旁边显示【申请发布】按钮

2.点击【马上申请】按钮,如实填写申请信息審核

3.点击【提交申请】按钮跳转提交成功页面。机智云将免费为你提供人工审核以及严谨的测试审核通过后,会根据你提交的量产计劃免费提供后台服务器支持

产测是生产环节中重要的部分,保证了产品的质量提升自身产品形象。机智云产测工具为批量生产的产品提供了方便快捷的模块与MCU产测方式在大型生产时,保证模块与MCU可正常使用使用产测工具,必须让产品先上架由产品创建者向机智云申请发布。机智云将免费为你提供人工审核以及严谨的测试

}

STM32用户都知道当完成程序调试,需要对芯片进行程序代码烧录编程一般会有三个选择:

  1. 通过调试接口【JTAG/SWD】来烧写程序,一般要使用STLink Utility或STVP工具软件来完成;
  2. 通过USB接口来烧写程序需下载USB DfuSe工具软件来实现。

2017年底ST推出了多合一烧录工具STM32CubeProgrammer,以其高集成度支持上述三类编程接口还兼具其它更多功能。

不断迭代臸2020年10月,更新至最新版 

:本文档为通用文档面向所有STM32产品,是 关于 STM32CubeProgrammer 的详细使用说明以及命令行的命令用法说明;

:与安全有关介绍 如哬创建可信任包以及如何进行安全烧录。

: STM32CubeProgrammer 还集成了” STM32MP1 系列密钥生成器”和“ STM32MP1 系列签名工具”通过命令行对应的指令,可以生成 ECC 密钥对并对固件进行签名。 具体使用方法请参考上述两篇用户手册

整理文章为传播相关技术,版权归原作者所有 | 如有侵权请联系删除

【1】STM32洳何配置外部中断? 【2】STM32单片机:独立看门狗、窗口看门狗的配置 【3】使用KeilMDK以及标准外设库创建STM32工程的详细过程 【4】编码器是什么STM32编码器接口及应用编程 【5】STM32学了很久,为什么还是不会做项目


}

我要回帖

更多关于 调试器的作用烧录代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信