当前位置: 首页 > news >正文

STM32国产替代方案

STM32国产替代方案

目录

  • STM32国产替代方案
    • 前言
    • 1 安装环境
      • 1.1 MounRiver Studio
      • 1.2 WCHISPTool
    • 2 新建工程
    • 3 编写和编译代码
    • 4 烧录和仿真
    • 结束语

前言

最近这两年因为各种因素影响,芯片的价格水涨船高。像ST系列的stm32价格暴涨了好几倍,stm32是很多公司以前一直都在用的芯片,突然的涨价导致新旧产品的成本都增加了不少,所以很多公司开始寻找可以替代的便宜芯片,于是很多国产方案应运而生。比如:GD32,AT32等等,我很早之前也介绍过GD32的使用和移植,不过我今天要讲的不是这些芯片。
我最近在调试一款沁恒的MCU,这也是意外发现的一款IC,首先声明一点,这里没有任何打广告的成分,纯粹是介绍一下这款IC,给大家多一种选择。沁恒微电子大家可能都没听说过,但是他们公司有一款芯片你们一定知道,那就是CH340,是一个很常用的串口转换芯片。不过我今天要讲的也不是这个IC,我今天主要介绍的是沁恒的CH32V203,我用这个MCU做一个USB键盘,感觉还可以,关键是这个芯片比ST便宜。

关于这个MCU详细的介绍这里就不讲了,你们可以自己去官网看一下,官网上还有很多其他型号的MCU,对标不不同的应用场景。我这里主要讲一下这个MCU具体要怎么使用,怎么编程和烧录。

官网地址:https://www.wch.cn/products/CH32V203.html

1 安装环境

1.1 MounRiver Studio

MounRiver Studio跟stm32不同,不是用keil编译的,而是MounRiver Studio,但是用法都是类似的。

官网下载地址:http://mounriver.com/download
在这里插入图片描述

下载完打开安装包直接安装,一路next即可。

1.2 WCHISPTool

WCHISPTool是烧录工具,用于MCU代码的烧录。

官网下载地址:https://www.wch.cn/downloads/WCHISPTool_Setup_exe.html

在这里插入图片描述

提示:PS:官网上还有很多资料,可以根据自己使用下载,比如:芯片手册,PCB,代码例程,驱动,调试工具等。

2 新建工程

1、打开MounRiver Studio,选择工程保存的目录。
在这里插入图片描述

2、依次点击File -> New -> MounRiver Project
在这里插入图片描述

3、选择自己使用的芯片型号,修改项目名称,点击Finish即可。
提示:第一次打开时,项目页面可能会被欢迎页挡住,关掉即可看到工程目录。
在这里插入图片描述

此时,一个基础工程就建立完成了,这个软件会根据你选择的MCU自动把相应的库函数添加进来,后续你在这个工程的基础上添加修改自己的应用代码即可。
在这里插入图片描述

4、在工程下添加文件或者文件夹
如果需要在工程下添加新的文件或者把已存在的文件、文件夹添加进来,可以在工程目录下右键添加。
在这里插入图片描述

如果添加的文件夹里面包含有头文件的话,还需要在工程的根目录下添加头文件路径。
在工程最外面的文件夹右键,点击Properties
在这里插入图片描述
找到C/C++Build -> Settings -> includes,然后添加头文件所在的文件夹目录即可。
在这里插入图片描述

3 编写和编译代码

官网上有MCU的代码例程,可以根据自己的使用情况把相应的demo加入到你新建的工程里面,然后编译。
编译只需要点击一下左上角那个图标即可。编译成功后在工程目录下obj文件里面会生成hex文件。
在这里插入图片描述

4 烧录和仿真

打开WCHISPTool烧录工具,选择对应的MCU,选择前面编译好的hex文件,然后把MCU的USB或者串口接入到电脑上,按下面配置好之后下载即可。
提示:烧录时需要先拉一下BOOT0引脚再上电,BOOT引脚高低电平分别对应烧录模式和运行模式,建议这里做成按键,需要烧录时先按下按键进入烧录模式,烧录完成之后松开按键进入运行模式。这一点类似于乐鑫ESP系列的MCU。

在这里插入图片描述

仿真需要用到官方的一个WCH-Link工具,类似JLink和ST-Link,我这里没买这个工具,具体就不说了。

结束语

好了,关于沁恒的这个MCU的介绍就到这里了,我用这个MCU做了一款USB键盘,键盘部分的代码是从其他MCU上面移植过来的,移植的过程也很顺利。使用起来感觉跟stm32没有太大的差别,包括一些硬件的接口以及软件的固件库,特别是官方提供的固件库,跟stm32的库非常像,很多函数的名字都是一样的,比如GPIO的配置,定时器的配置,中断服务函数等等,跟stm32基本都是一样的,所以如果是从stm32移植过去的话会很方便。唯一有一点我觉得不是很好的,就是烧录的时候没有stm32的swd方便,它需要拉一下那个BOOT脚才能烧录,完了又需要拉回去。
具体性能、功耗这些我没去测试过,这里就不做评价了,但是对于性能要求不高的设备肯定是够用了的,关键是价格还便宜。当然了,我也没有和其他国产MCU比较,也不清楚这个MCU还有没有其他的坑暂,用不用都是大家的自由,我只是给大家提供了另外一种替代方案。

好了,闲话就说到这了,如果觉得这篇文章有帮到你的话,给博主点个赞呗。

相关文章:

  • 学js的第十七天
  • 搭建自己的云存储空间|FastDFS分布式文件系统考虑一下?
  • <哈希及模拟实现>——《C++高阶》
  • 【力扣】两数之和 II - 输入有序数组
  • 懒人方案--半天搞定一个SpringBoot单体项目
  • 【JAVA数据结构】JAVA数据结构必备知识:泛型与包装类
  • 微服务项目:尚融宝(40)(核心业务流程:申请借款额度(3))
  • 将web前端项目部署到github,在hbuilderx中部署github中的项目、对Github加速
  • Pytorch优化器全总结(二)Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam
  • MFI不告诉你的秘密
  • 【RocketMq 系列】RocketMq 消息重试机制、死信队列
  • 该从什么角度思考npm、yarn与pnpm的区别
  • 分库分表一:ShardingSphere介绍和入门实战
  • Linux内存管理(三十一):页面回收总结
  • 微信小程序│ 游戏开发 │连连看游戏
  • gulp 教程
  • HTML5新特性总结
  • Linux后台研发超实用命令总结
  • mongodb--安装和初步使用教程
  • rc-form之最单纯情况
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 普通函数和构造函数的区别
  • 如何设计一个比特币钱包服务
  • 协程
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 大数据全解:定义、价值及挑战
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #HarmonyOS:软件安装window和mac预览Hello World
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (26)4.7 字符函数和字符串函数
  • (pojstep1.3.1)1017(构造法模拟)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (简单) HDU 2612 Find a way,BFS。
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)elasticsearch 源码之启动流程分析
  • (四)linux文件内容查看
  • (转载)Google Chrome调试JS
  • .equals()到底是什么意思?
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .Net Web项目创建比较不错的参考文章
  • .net 使用ajax控件后如何调用前端脚本
  • .NET文档生成工具ADB使用图文教程
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • @property python知乎_Python3基础之:property
  • @Resource和@Autowired的区别
  • @RestControllerAdvice异常统一处理类失效原因
  • @Transactional类内部访问失效原因详解
  • [Angular 基础] - 表单:响应式表单
  • [bzoj2957]楼房重建
  • [C++]priority_queue的介绍及模拟实现