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

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

[复制链接]
gaosmile 发布时间:2021-1-14 13:51
今日带来能够完美替代STM32的产品是沁恒微电子的CH32F103以及RISC-V内核的CH32V103两款产品。
4 o. Q  V2 {% Y9 R
CH32F1系列是基于32位Cortex-M3内核设计的通用微控制器。片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等。此系列具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块,多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源。% t8 G9 G3 I( X4 b) j
CH32V103则是其在去年上半年推出的RISC-V架构的32位通用MCU微控制器。CH32V103系列是以RISC-V3A处理器为核心的32位通用微控制器,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。
" D. }* ]0 S1 E) p( G* j9 X" \
微信图片_20210114134626.jpg
1 \& n4 t7 ?  D  t: |0 ?
多说无益,直接看几个21ic家网友关于这两款开发板的测评:
: `( A/ R' E# Z7 _
【CH32F103测评报告】+基于WCH沁恒CH32F103开发板点灯编程用户:yljon/ [- u. j: t5 I" i% n
试验目标:使用WCH沁恒CH32F103开发板点灯编程试验
$ {' Y; D2 O4 O% g' i, L6 j
2 j8 ^* s5 s, V$ [9 ?5 c0 {1 B% p" V一、搞点资料看看,电路图要搞到

# r+ Z1 H) g! M/ E7 w+ x; x& ~* D& ?* E9 _
从21ic论坛(bbs.21ic.com/iclist-900-1.html)里找些资料看看,强烈推荐下载那个CH32F103评估板说明及参考应用例程:CH32F103EVT.ZIP
' v% i7 {; t5 J- j- o0 z) n8 w, A  s' w9 {  i. _, M
微信图片_20210114134631.png
2 J. B7 G6 `1 M; n
3 x0 U7 `1 T: D! Z# d% V! d3 I6 s' m之所以推荐下载这个压缩档,是因为里面有一个非常好的说明文件:
/ A: y" [6 A+ e$ k6 O; E; t3 ~+ r/ u6 ~1 T8 A# n8 ~
微信图片_20210114134636.png
9 f* A0 H! R6 Y$ Y* {
6 m0 N& b# \# ?% \) U% Z' ]3 }2 m, W这个说明文件非常棒,介绍了每个目录的内容,为制作这个说明文件的小哥哥点赞!!!
4 K/ `' Z% b4 I; Y7 B
$ q" j* H& r& D3 Q9 U* i, u* o电路图在这个压缩档有:
' i# Q+ E$ G# u$ E# q2 {% H1 e, Y" ]
微信图片_20210114134640.png * c8 d/ e; w3 f- L" s6 ]: C
6 t# E! @0 I' j3 D0 L; i4 `
1. LED没有直接连到MCU引脚,需要准备连接导线;, S# S0 l3 M- \, N7 o
2. 烧录调试接口貌似ST-LINK,准备一个高仿ST-LINK烧录器即可;
0 r- S  ~  z% b& \' `
微信图片_20210114134644.jpg 5 g4 c9 m. t+ Y7 k1 j- L! c

" W4 q0 F% J* h6 J二、搭建环境,芯片的PACK安装
. h. [" z% r7 W& E1 E& x
上面下载的压缩包里就有PACK,Keil.WCH32F1xx_DFP.1.0.0.pack,直接点击安装即可,打开KEIL,在KEIL里看见如下就意味着PACK搞好了。
1 D% H( R6 D, L* `2 C
先选择一下芯片,如下图:7 e0 L. t% h% z5 x( Z4 M# r! J
9 f9 z+ S4 c$ f9 g
微信图片_20210114134647.png
  H( Z$ k- e# o$ T; s& P5 B8 A- j; N' \* M* N% w; y# c; r8 a5 b* p& @
由于我的烧录器是ST-LINK,在配置中选择即可:
# O; b' R9 g1 l" o- g! F- ^% u# d3 W! ~- j3 W# ?
微信图片_20210114134653.png 7 F( O) r% b* Q- \) i. q
* y  V- {. h/ B; A3 m1 z; \
选择一下芯片算法,64K滴:
1 Q5 F6 @* M4 l  ~
- Q$ p# @) X! x8 Q, C. k4 M
微信图片_20210114134657.png
  i% ?, ]: w5 L  h* f9 z$ c) D$ E( b, R* Z* t) a, t% ?& h8 D* a+ _
三、搞定代码,点亮屏幕
4 ^# K. E" }( _9 J7 N' ^
上述压缩包里就有现成的例子,点灯LED代码直接拿过用,哎呀,这代码风格就是ST的标准啊,无需额外学习,直接上手,哈哈
  Z) p6 u. I! L( E

% I4 s# _! j8 S0 E/ v  d' K
  • ' Q& E. |/ p# T
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);        }}
4 `, w- B/ V3 R: E& E
由于我使用PA0点灯,记得将LED连接到PA0即可。/ l2 x) H( a2 Y) N7 z* {

3 K: b' y+ d$ J9 i) U" L四、学习将视频转GIF,看着方便

) V* V8 z5 d3 k
将上述代码编译烧录,看看效果,还可以啊,哈哈哈哈
- p# {. x* _, K0 u5 X6 Z0 f7 W" t
微信图片_20210114134700.gif
7 p8 M8 x$ {4 f8 a
6 p% F1 X; B  ~  k8 l2 Y) H" e
五、上传这块开发板点灯源代码:* j+ f! w5 m+ Y+ V8 e) i
为了方便和朋友们交流,将源代码上传上来,下载请点击阅读原文。
+ d% i6 F6 V9 C1 h
! G* `5 Y3 Q; B- J  V2 _
六、开发板评价: U, U' e& h4 X4 M! Q5 L5 O
1. WCH沁恒CH32F103开发板总体制作精良,用心了5 a% ^# U4 P* o. A% a  b: U7 c
2. 代码风格和ST一样一样滴,上手也快
! H$ z/ }& ~% v: h8 m  w3. 外设功能和ST有细微差异,看过手册也都能明白
2 {: `. ~- `" h: Q) o  Q4. 这块开发板的其它功能,待后续慢慢搞,后面准备搞个U盘自动更新功能,哈哈

; `2 ~5 |4 S9 L/ u
【沁恒WCH32F103测评报告】WCH32F103C8T6串口下载方法及串口打印用户:catnull- W2 y6 j$ k- J$ l+ \4 W9 B- m7 O
1.CH32F103FC8T6的芯片准备知识
7 R& O  B* `% ^7 A( C- E* d习惯了STC和Arduino的串口下载,对于arm32-M3指令集的国产芯片CH32F103C8T6,也在摸索着使用串口下载。在开发板的包里,干货满满,但是手头上没有SWD接口的编程器。找了资料,STM32F103是可以用串口下载的。前提是,你要连接好PA9(UART1_TX),以及PA10(UART1_RX)到USB-TLL转接板,比如CH340G的小板。
3 @6 d9 O, f5 S$ s% e8 Y$ _
另外,需要设置BOOT启动的方式。跳线接法:BOOT1 -->GND, BOOT0-->VCC,这样才会从芯片内的出厂固件内存引导启动,这里相当于Arduino的BootLoader的功能。平常的接法是BOOT0-->GND,这是从Flash区运行启动代码,跳过了厂家代码区。# ]$ q- N% E; c) h: o: m) k7 n
8 B3 Z8 t6 U* Z& N6 V2 o
2.硬件准备好后,需要软件。下载WCH_ISP_tool(2.8)下载链接.

* w- o! i0 K' P9 o3 h1 [, ~9 \$ O安装好后,界面如图。

5 R& p+ X' `8 S" T5 O: z" ^
微信图片_20210114134704.png
4 p4 E. r5 d: z& j1 u: Z$ S+ V# d; o- G! M$ q6 R5 W. A
注意要选择CH32F1系列标签,Keil MDK编译器生成的Hex文件,需要再用户程序文件框内选择。

; f- N8 n2 I  p  S注意可以多试几次,比如插拔USB转串口小板。还有当出现“解除写保护”,需要先点击“解除保护”按钮。之后再点击下载。! Y# c. |% f9 w; |1 p2 e
) E+ J; ~2 S. X+ O; ^) |. n
4.测试UART_Printf串口打印功能
8 j; M  `! J5 l' t4 Y1 X9 z
开发板的串口调试功能可以方便的输出一些具体的信息,作为程序运行的重要参考。这里我测试了math.h的正弦函数计算功能。算是发挥一下32位CPU的优势。想起来计算氢弹的理论的501机,每秒不过几十万次加法运算。这个机子已经远远超过了当年的庞然大物。
) ~- e) b  [& @: ~; X
测试的源码:

( @9 t3 W! F+ S; s, Gmain.c0 F4 `$ u  S( f1 L! q( R0 b6 Q5 d

* d9 G1 d9 |# h& k' j

  • 0 c8 b1 f% k! X
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)  {                }}

7 A9 V0 P7 C/ M
使用串口助手来接收信息。
# A, _% M* l& X+ G, `4 W, D
微信图片_20210114134708.png ) }6 ]5 d, M$ T$ J0 x/ ?

  V, H# i9 M9 I, A' f. M& N, c附阅读材料:中国计算机60年国产计算机前史
' a0 `" ~0 Z7 E2 Y  f1 U
微信图片_20210114134714.jpg 8 @: P2 {; ]  {9 Y
【RISC-V MCU CH32V103测评】01:LED Demo用户:740071911
' n; w1 i5 u6 W+ Y
第一次体验risc-v的板子,真的是不错,快递也很迅速。而且cortex m系列挺像的,这样上手就很容易了,体验一下点灯操作。3 j5 b. B1 a0 Z. T

& x  e& p% i6 S- ?" D) }6 P0 V点灯需要注意的是,led小灯没有连接到mcu的引脚上,需要自己用杜邦线连接一下
微信图片_20210114134717.png $ u& B; i+ Q+ t2 @

/ W" R; t' O  r2 ]! J2 g- Z代码也很简单,有stm32经验的很容易

9 @. B" O( b9 g7 b/ @

  • 9 V( k- T( ^: a/ ~; q
/********************************** (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);        }}
$ c0 n8 v% C" ?4 |" X2 a
【RISC-V MCU CH32V103测评】02:USART Demo用户:740071911
; {0 L' u$ p+ \0 o1 r4 G& ], m
注意,WCH-Link的串口只能发送,不能接收!直接在上一个LED Demo基础上添加。: c# u& q* ?& r3 u
微信图片_20210114134721.png ! M4 f8 a, {! N4 v0 ^0 I% Y2 X
3 A9 ^0 \7 Z1 C% P/ c$ B
添加串口1,通过串口接收中断来接收数据,接收到回车键,一帧数据结束。$ t. H1 x6 u% U1 n3 D  z" Q
主程序里处理串口数据(或丢弃或返回)
# s5 r# m% E: t3 a0 X2 z! L
0 f" U( k2 D( b! k; }$ o
微信图片_20210114134725.png 8 S) r" G/ X" }- {; {

9 k  g( ^% c3 w4 o: R! M7 Q用其他usb转ttl工具,看看显示
: x* j% ?4 `/ a) Z4 l& @9 E
微信图片_20210114134728.png
  T2 _/ a' m3 ^$ }5 `( g; c7 K7 F
串口调试助手显示结果% p& [4 i- z: q0 J/ g
0 K8 F, D& L3 O/ L* L! O8 e0 f
微信图片_20210114134732.png
9 J8 R4 k0 n3 q0 M. U
你认为这款开发板如何?之后嵌入式ARM还会继续登载国产替代者的更多测评信息。

+ U* B4 d3 i' p& |
附:沁恒微电子MCU选型表 微信图片_20210114134736.jpg $ ]: C# _& {* \: [" @$ x
收藏 评论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 手机版