你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

能够替代STM32的国产产品介绍

[复制链接]
gaosmile 发布时间:2021-1-14 13:51
今日带来能够完美替代STM32的产品是沁恒微电子的CH32F103以及RISC-V内核的CH32V103两款产品。
1 d7 ?9 Y5 A8 F
CH32F1系列是基于32位Cortex-M3内核设计的通用微控制器。片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等。此系列具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块,多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源。5 ^8 m  M/ h, r+ F2 f/ a* x, w. X
CH32V103则是其在去年上半年推出的RISC-V架构的32位通用MCU微控制器。CH32V103系列是以RISC-V3A处理器为核心的32位通用微控制器,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。
$ U: G7 S* t* E7 }
微信图片_20210114134626.jpg ( B1 e7 c0 I! g  z8 W
多说无益,直接看几个21ic家网友关于这两款开发板的测评:$ m+ f$ e$ K, E( G* m
【CH32F103测评报告】+基于WCH沁恒CH32F103开发板点灯编程用户:yljon
% `: _/ F' N8 J  `" ~6 M
试验目标:使用WCH沁恒CH32F103开发板点灯编程试验
6 c5 T2 r' o% w% r7 P
7 @* [% E) d! a9 `2 ^  ^, [4 F一、搞点资料看看,电路图要搞到
0 W2 }- E0 }' J( V0 e' `
从21ic论坛(bbs.21ic.com/iclist-900-1.html)里找些资料看看,强烈推荐下载那个CH32F103评估板说明及参考应用例程:CH32F103EVT.ZIP
0 T4 Q5 T+ [4 Y9 n* i0 l5 n4 m$ n3 N! P- ~# N, h6 O
微信图片_20210114134631.png + _9 C9 j' N/ A" w( h& z  g

' `* b/ L% z" _, B之所以推荐下载这个压缩档,是因为里面有一个非常好的说明文件:# ~& d8 ~- X) s

' `& K* f9 ^2 H3 I( O0 l
微信图片_20210114134636.png 6 r4 |/ j( {1 [2 E3 N

. {7 a- e. c2 P/ N0 y这个说明文件非常棒,介绍了每个目录的内容,为制作这个说明文件的小哥哥点赞!!!
9 T* p9 R+ v+ d* r: U& p- W. {& u" |: x
" E9 C$ B% a! y) r' L0 J6 [电路图在这个压缩档有:, Z) y# n3 K4 G; \5 o  g! A

5 ]) J0 G8 H! @; b
微信图片_20210114134640.png
$ ]3 f* H8 `9 A+ w5 f4 N( K; t3 ^( v3 D6 j, M* N! k
1. LED没有直接连到MCU引脚,需要准备连接导线;
6 s9 W! s, \) J' K) e* P2. 烧录调试接口貌似ST-LINK,准备一个高仿ST-LINK烧录器即可;
, T& V; W8 l  z8 }) i; h" s" ~; H
微信图片_20210114134644.jpg - `; c% _9 p0 S/ k1 m8 h& W

9 J( h2 M* V- }/ {+ R二、搭建环境,芯片的PACK安装

% E/ L" h- e4 C1 Q8 G
上面下载的压缩包里就有PACK,Keil.WCH32F1xx_DFP.1.0.0.pack,直接点击安装即可,打开KEIL,在KEIL里看见如下就意味着PACK搞好了。

8 T6 s2 I0 a9 H/ v
先选择一下芯片,如下图:% ~9 z& ~# \" q. `3 I# Z6 X

, U. @6 Z" {" e& V
微信图片_20210114134647.png % X- ^. l5 H! Y4 \
1 i4 {: c1 K# _6 a0 w$ Y
由于我的烧录器是ST-LINK,在配置中选择即可:  @5 ?  E" L' m/ u  B
% M  F4 C3 c4 \/ c) s
微信图片_20210114134653.png 5 f4 r4 Z* k6 n4 U
0 A: I" R' j# n; i9 H. G
选择一下芯片算法,64K滴:1 b$ M% c( n- \  A7 X4 o) e

; I0 w* `  t( S7 j3 Z0 E5 M5 i5 N
微信图片_20210114134657.png
. s7 `0 y1 a2 E, R2 p# L/ y1 p  s% g$ A# N) d1 h
三、搞定代码,点亮屏幕
1 t$ }' }  N( _5 t/ ~7 H: a
上述压缩包里就有现成的例子,点灯LED代码直接拿过用,哎呀,这代码风格就是ST的标准啊,无需额外学习,直接上手,哈哈
8 _- |; F/ N% h% G7 n& q/ g0 a
5 a3 u% C* z" q; x9 p

  • 1 F$ ]6 g$ @" n+ M) ^4 g
void GPIO_Toggle_INIT(void){  GPIO_InitTypeDef  GPIO_InitStructure;  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  GPIO_Init(GPIOA, &GPIO_InitStructure);}int main(void){        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  Delay_Init();        GPIO_Toggle_INIT();while(1)  {                Delay_Ms(500);                PAout(0) ^= (1<<0);        }}
; G  V8 q4 v0 e0 @
由于我使用PA0点灯,记得将LED连接到PA0即可。
- h( k9 `" p2 ^% }9 b) S5 c3 t3 B: o4 I1 S$ n- _5 ~! b
四、学习将视频转GIF,看着方便
+ q- o( G- Q( C( x% W
将上述代码编译烧录,看看效果,还可以啊,哈哈哈哈' L. F0 H& _% ?: {
微信图片_20210114134700.gif : |- d: }. F# b

+ o2 U. [, Q% I
五、上传这块开发板点灯源代码:
$ i" p( t. f1 G6 x4 d/ @# K为了方便和朋友们交流,将源代码上传上来,下载请点击阅读原文。
6 ?; A, r- _3 _; Y' W+ b/ P. _: s" J6 `; L$ s) @0 N
六、开发板评价
3 n2 A8 z+ \" n' `: k
1. WCH沁恒CH32F103开发板总体制作精良,用心了  v0 u- O0 ~- Q5 \5 S% _' B& t
2. 代码风格和ST一样一样滴,上手也快
7 S5 E6 b: N; W% C& N/ q/ {: ?3. 外设功能和ST有细微差异,看过手册也都能明白
% t9 P/ U+ d! i7 U8 @4. 这块开发板的其它功能,待后续慢慢搞,后面准备搞个U盘自动更新功能,哈哈

9 a4 a8 Q/ l1 ~5 H" ~$ ~0 G5 r) \0 \
【沁恒WCH32F103测评报告】WCH32F103C8T6串口下载方法及串口打印用户:catnull
4 A+ ]0 j( H, B5 b( e' a
1.CH32F103FC8T6的芯片准备知识
5 S( l7 t' d* X- L) O; F& v习惯了STC和Arduino的串口下载,对于arm32-M3指令集的国产芯片CH32F103C8T6,也在摸索着使用串口下载。在开发板的包里,干货满满,但是手头上没有SWD接口的编程器。找了资料,STM32F103是可以用串口下载的。前提是,你要连接好PA9(UART1_TX),以及PA10(UART1_RX)到USB-TLL转接板,比如CH340G的小板。

% [# s# f  i+ }' i另外,需要设置BOOT启动的方式。跳线接法:BOOT1 -->GND, BOOT0-->VCC,这样才会从芯片内的出厂固件内存引导启动,这里相当于Arduino的BootLoader的功能。平常的接法是BOOT0-->GND,这是从Flash区运行启动代码,跳过了厂家代码区。9 X" \& I# N) ~7 o
9 U" q; p9 C9 S0 ]: [4 F; M5 H; Y
2.硬件准备好后,需要软件。下载WCH_ISP_tool(2.8)下载链接.
# W0 |" q6 [/ Z; p( N3 I
安装好后,界面如图。
  y6 W7 O# f( J7 I9 ^8 t+ a
微信图片_20210114134704.png / ]" Z: |, A3 `$ c8 `! P: m- `$ a/ Z

* h; M4 f! n9 p. K注意要选择CH32F1系列标签,Keil MDK编译器生成的Hex文件,需要再用户程序文件框内选择。

! i( X! S1 b3 F! q. k注意可以多试几次,比如插拔USB转串口小板。还有当出现“解除写保护”,需要先点击“解除保护”按钮。之后再点击下载。4 g9 g4 t7 l2 v
2 q2 u; U: ^( \2 o
4.测试UART_Printf串口打印功能

, Y2 G4 R; t( S2 c# N3 s开发板的串口调试功能可以方便的输出一些具体的信息,作为程序运行的重要参考。这里我测试了math.h的正弦函数计算功能。算是发挥一下32位CPU的优势。想起来计算氢弹的理论的501机,每秒不过几十万次加法运算。这个机子已经远远超过了当年的庞然大物。
2 f* v* R+ S- X! d( R
测试的源码:
7 F/ t" L% J; J
main.c
" u) {- v7 ~# x( t$ I; r
- e! [: \" l+ B

  • : b5 ^$ |' k" E0 z9 C
int main(void){        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);    Delay_Init();        USART_Printf_Init(115200);                             /* printf using USART1 */printf("SystemClk:%d\r\n",SystemCoreClock);printf("This is printf example\r\n");printf("sin(pi/3)=%f",sin(PI/3));while(1)  {                }}

- o- \1 X  S! B. q; n, r2 h
使用串口助手来接收信息。# U7 d. S- f; C$ G. s+ j
微信图片_20210114134708.png
  |. X" T3 a, _7 M& W% N# t% {' X8 a0 m3 S, t
附阅读材料:中国计算机60年国产计算机前史
/ `# U; V) s. y* w
微信图片_20210114134714.jpg - e1 q$ z6 K$ M  A
【RISC-V MCU CH32V103测评】01:LED Demo用户:740071911
6 @9 G2 f, Q" V- P9 L
第一次体验risc-v的板子,真的是不错,快递也很迅速。而且cortex m系列挺像的,这样上手就很容易了,体验一下点灯操作。
. o2 U2 X8 L0 D* }3 i
& q2 s, I! i# O& z2 R7 g点灯需要注意的是,led小灯没有连接到mcu的引脚上,需要自己用杜邦线连接一下
微信图片_20210114134717.png
  L( a7 c$ A! v9 V4 q; G7 N" x, S8 A; V; D3 w; O
代码也很简单,有stm32经验的很容易

: u# |1 i8 v# A% Q
  • 9 O6 X" P/ t- I$ |( `
/********************************** (C) COPYRIGHT ******************************** File Name          : main.c* Author             : WCH* Version            : V1.0.0* Date               : 2020/04/30* Description        : Main program body.*******************************************************************************/#include "debug.h"void LED_Init(void){    GPIO_InitTypeDef  GPIO_InitStructure;    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    GPIO_Init(GPIOA, &GPIO_InitStructure);}void GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin){    GPIOx->OUTDR ^= GPIO_Pin;}int main(void){    Delay_Init();    //USART_Printf_Init(115200);    //printf("SystemClk:%d\r\n",SystemCoreClock);    LED_Init();        while(1)        {            Delay_Ms(1000);            GPIO_TogglePin(GPIOA, GPIO_Pin_0);        }}! s( v, {. t1 U- h# I7 ~! {. @' T% e
【RISC-V MCU CH32V103测评】02:USART Demo用户:740071911& \. Y( E6 Q% H' n
注意,WCH-Link的串口只能发送,不能接收!直接在上一个LED Demo基础上添加。7 E' |9 d+ c0 ~0 @  C
微信图片_20210114134721.png
; _; J) G, n! q
2 L$ w6 Q' a# Q: U3 K添加串口1,通过串口接收中断来接收数据,接收到回车键,一帧数据结束。# u* H& F; s. o4 y
主程序里处理串口数据(或丢弃或返回)+ g5 m, I' X" z$ r+ }8 c" h- j
& l  B) H5 p" W7 p
微信图片_20210114134725.png ! {1 U9 f, V+ j/ t7 ?" l: ]
# T5 f% j+ ~& z9 X$ X4 `+ C
用其他usb转ttl工具,看看显示

6 Z) c9 _5 f+ m% W
微信图片_20210114134728.png
2 ]+ K$ t5 ?, A) Q9 |# W
, Y6 _1 c5 O3 M串口调试助手显示结果
9 a* ?4 K% s; L. I8 k3 X% U3 f! H3 p- `7 X) |: {$ ^
微信图片_20210114134732.png
* u0 e  s; ]$ D6 l6 ]+ Y
你认为这款开发板如何?之后嵌入式ARM还会继续登载国产替代者的更多测评信息。

# X/ X. o4 ^2 ~# `
附:沁恒微电子MCU选型表 微信图片_20210114134736.jpg 1 H) P* L3 d! m, m& c* J
收藏 评论2 发布时间:2021-1-14 13:51

举报

2个回答
七哥 回答时间:2021-1-14 18:48:25
沁恒的东西还是不错的,下个项目争取用上
jtc_88 回答时间:2021-1-18 17:02:04
能把资料完善好,最好了,资料 很头疼

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版