打印
[RISC-V MCU 应用开发]

F103到V103移植说明

[复制链接]
6583|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 RISCVLAR 于 2021-4-28 15:17 编辑

F103到V103移植说明

本次说明主要介绍如何从一个STM32F103工程移植一个程序到CH32V103工程,具体步骤如下:

1、首先使用MounRiver新建一个CH32V103工程,新建工程可参考如下链接:
新建工程如下图所示:

2、本文以STM32的一个PWM例程为例进行移植,STM32F103例程如下:

3、将STM32F103工程文件HARDWARE文件夹下.c文件和.h文件复制粘贴到V103工程文件Hradware文件夹下,具体如下:
STM32F103工程文件HARDWARE文件夹
CH32V103工程文件Hardware文件夹

4、复制粘贴完成后,重新刷新CH32V103工程,具体如下:
选中工程,右击,点击Refresh
刷新完成之后,工程显示如下:
由下图可见已经包含了我们复制粘贴过来的几个文件

5、添加路径,将复制粘贴后文件添加到工程路径中,具体如下:

6、添加路径完成之后显示如下:
其他两个路径添加步骤与上述一致,全部添加完成之后如下,最后依次点击Apply和Apply and Close完成路径添加
   
7、修改复制粘贴过来的几个文件的头文件:
修改前:
  
修改后:
  
  
因为ch32v10x_conf.h文件是头文件集合,因此头文件使用ch32v10x_conf.h文件就好了,其内容如下:
其他几个文件与上述方法类似

8、修改main函数内容,直接复制粘贴过来然后修改头文件即可,具体如下
STM32F103 main函数内容如下:
  
复制粘贴移植到CH32V103之后并修改头文件,内容如下:
  
debug.h文件主要包含延时函数和串口打印相关函数。此外,由于延时相关函数的定义不同(延时函数定义大小写不同),具体看下图,因此需要对程序中延时函数进行修改。
STM32F103 keil里面:
  
CH32V103 MounRiver里面
  
此外,串口初始化函数也需要修改,具体修改前后对比如下:
修改前
  
修改后
  
此外,由于V103暂时不支持位操作,因此需要将led.h文件中相关位操作定义去掉,具体如下:
修改前
  
修改后
  
修改之后可以使用以下几个函数来定义表示LED灯亮灭
  
此外,此处LED初始化函数函数中使用PE5引脚,如下图,但我们芯片目前并没有那么多引脚,因此需要对引脚定义进行修改,具体如下:
修改前:
修改后:
关于LED灯亮灭程序部分修改:
修改前:
修改后:

9、修改完成之后,编译运行,没有报错,如下图,下载到开发板,程序运行正常,移植完成。

注意:若程序中用到中断,还需在中断函数所在文件头部添加如下一行代码,如下图所示:
  

Template.rar

461.09 KB

PWM输出实验.rar

2.3 MB

使用特权

评论回复

相关帖子

沙发
豌豆爹| | 2021-5-6 15:52 | 只看该作者
很不错的,学习了解一下

使用特权

评论回复
板凳
skyred| | 2021-6-13 13:46 | 只看该作者
mark,节后上班试试切

使用特权

评论回复
地板
redone| | 2021-6-18 16:08 | 只看该作者
我现在也面临替代抉择,感觉好难,
在主要是我的底子是HAL的,还带ucIII,能用的资源除了网络,都用了。。。。

使用特权

评论回复
5
xdqfc| | 2021-6-19 11:27 | 只看该作者
redone 发表于 2021-6-18 16:08
我现在也面临替代抉择,感觉好难,
在主要是我的底子是HAL的,还带ucIII,能用的资源除了网络,都用了。。 ...

有使用STM32的基础,现在玩CH32V103肯定没有难度的。都差不多,写中断函数时候,注意申明一下。

使用特权

评论回复
6
kiwis66| | 2021-6-24 09:22 | 只看该作者
xdqfc 发表于 2021-6-19 11:27
有使用STM32的基础,现在玩CH32V103肯定没有难度的。都差不多,写中断函数时候,注意申明一下。
...

现在的替代,都想着无间隙直接替。
老板不会管你其他的,
就说这边等着发货,
你换个这个芯片试试,
网上说了,完美替代····

使用特权

评论回复
7
xdqfc| | 2021-6-24 09:29 | 只看该作者
kiwis66 发表于 2021-6-24 09:22
现在的替代,都想着无间隙直接替。
老板不会管你其他的,
就说这边等着发货,

完美替代,啥意思??是不是不修改程序,直接搬过来就用??

使用特权

评论回复
8
kiwis66| | 2021-6-24 09:56 | 只看该作者
xdqfc 发表于 2021-6-24 09:29
完美替代,啥意思??是不是不修改程序,直接搬过来就用??

对,老板都是这么想的。
嵌入式知道这是不可能的

使用特权

评论回复
9
LEDyyds| | 2021-6-24 10:53 | 只看该作者
这个移植好详细,每一步都说到了,说不定以后自己就要用到。码住

使用特权

评论回复
10
pixhw| | 2021-7-1 19:38 | 只看该作者
可以使用hal吗?         

使用特权

评论回复
11
sdlls| | 2021-7-1 19:39 | 只看该作者
CH32的价格还是便宜呢。        

使用特权

评论回复
12
febgxu| | 2021-7-1 19:39 | 只看该作者
支持所有的库函数吗         

使用特权

评论回复
13
xiaoyaodz| | 2021-7-1 19:39 | 只看该作者
F103到V103移植厉害了。      

使用特权

评论回复
14
fentianyou| | 2021-7-1 19:39 | 只看该作者
如果环境也兼容就更好了。        

使用特权

评论回复
15
selongli| | 2021-7-1 19:40 | 只看该作者
以后国产芯片可以替代越来越多的芯片了。   

使用特权

评论回复
16
minzisc| | 2021-7-1 19:40 | 只看该作者
STM32F103工程不兼容吗      

使用特权

评论回复
17
lzmm| | 2021-7-1 19:40 | 只看该作者
很不错的,学习了解一下  

使用特权

评论回复
18
hudi008| | 2021-7-1 19:40 | 只看该作者
这个移植好详细,是官网的资料吗   

使用特权

评论回复
19
kkzz| | 2021-7-1 19:40 | 只看该作者
有对应的芯片替换吗?         

使用特权

评论回复
20
redone| | 2021-7-7 15:31 | 只看该作者
这个是不是只能是标准库的呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

293

帖子

41

粉丝