F103到V103移植说明
本帖最后由 RISCVLAR 于 2021-4-28 15:17 编辑F103到V103移植说明
本次说明主要介绍如何从一个STM32F103工程移植一个程序到CH32V103工程,具体步骤如下:
1、首先使用MounRiver新建一个CH32V103工程,新建工程可参考如下链接:https://bbs.21ic.com/icview-3037286-1-1.html?_dsign=f44376cc新建工程如下图所示:
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、修改完成之后,编译运行,没有报错,如下图,下载到开发板,程序运行正常,移植完成。
注意:若程序中用到中断,还需在中断函数所在文件头部添加如下一行代码,如下图所示:
很不错的,学习了解一下 mark,节后上班试试切 我现在也面临替代抉择,感觉好难,
在主要是我的底子是HAL的,还带ucIII,能用的资源除了网络,都用了。。。。 redone 发表于 2021-6-18 16:08
我现在也面临替代抉择,感觉好难,
在主要是我的底子是HAL的,还带ucIII,能用的资源除了网络,都用了。。 ...
有使用STM32的基础,现在玩CH32V103肯定没有难度的。都差不多,写中断函数时候,注意申明一下。
xdqfc 发表于 2021-6-19 11:27
有使用STM32的基础,现在玩CH32V103肯定没有难度的。都差不多,写中断函数时候,注意申明一下。
...
现在的替代,都想着无间隙直接替。
老板不会管你其他的,
就说这边等着发货,
你换个这个芯片试试,
网上说了,完美替代···· kiwis66 发表于 2021-6-24 09:22
现在的替代,都想着无间隙直接替。
老板不会管你其他的,
就说这边等着发货,
完美替代,啥意思??是不是不修改程序,直接搬过来就用??
xdqfc 发表于 2021-6-24 09:29
完美替代,啥意思??是不是不修改程序,直接搬过来就用??
对,老板都是这么想的。
嵌入式知道这是不可能的 这个移植好详细,每一步都说到了,说不定以后自己就要用到。码住 可以使用hal吗? CH32的价格还是便宜呢。 支持所有的库函数吗 F103到V103移植厉害了。 如果环境也兼容就更好了。 以后国产芯片可以替代越来越多的芯片了。 STM32F103工程不兼容吗 很不错的,学习了解一下 这个移植好详细,是官网的资料吗 有对应的芯片替换吗? 这个是不是只能是标准库的呢
页:
[1]
2