打印

求助,GD32F103的库和STM32的函数名称不兼容问题

[复制链接]
1389|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
手上一个比较成熟的产品,需要由STM32换成GD32,硬件没问题,但是软件搭建项目时候,他们的库函数调用格式不兼容,

比如GPIO,STM32是用的结构体,GPIO_Init(GPIOB, &GPIO_InitStructure);
但是gd的库全是小写的函数void gpio_init(uint32_t gpio_periph, uint32_t mode, uint32_t speed, uint32_t pin)

同样串口、pwm也有这个问题,大家是如何解决的呢?重定义重新写所有用户代码还是有更好的解决办法?有没有写好了的转换函数呢~~~谢谢大家

使用特权

评论回复
沙发
zeshoufx| | 2022-5-9 19:33 | 只看该作者
底层驱动和应用分开,,只需要驱动改一下,,,应用不变,,,驱动也简单,花不了多久,,,

使用特权

评论回复
板凳
fuqinyyy| | 2022-5-9 19:34 | 只看该作者
本身就不兼容啊

使用特权

评论回复
地板
Prry| | 2022-5-9 23:38 | 只看该作者
一般封一层bsp,对接底层库,更换芯片只需修改bsp层

使用特权

评论回复
5
gxs64| | 2022-5-10 12:07 | 只看该作者
先用stm32调好,然后bin直接到gd32就可以了

使用特权

评论回复
6
gdszzyq| | 2022-5-10 13:00 | 只看该作者
别说函数不兼容,也不可能做成一样,连定时器、串口、ADC的编号都是不一样的,ST是从1开始的,GD是从0开始的,真要换还是要花点时间一个一个的换,反正GD的库就是来坑人的,寄存器地址宏定义各种绕,就不能象ST那样直接定义基地址,非要搞成算来算去,和你捉迷藏一样。

使用特权

评论回复
7
gdszzyq| | 2022-5-10 13:02 | 只看该作者
直接用原ST的代码下进去也行,有没有隐患就不清楚了,反正我是不敢用GD的,带多路电机就有问题,一直找不到原因。

使用特权

评论回复
8
study1234| | 2022-5-12 11:04 | 只看该作者
不兼容才是正常的
历史原因,开始是可以用ST的库兼容,

后来GD自己的库,ST有了HAL和LL,外部驱动,不再兼容
早期GD引脚定义与ST一致,后来也不再一致,西方文化从1开始,东方有零,
因为有旧版的数据手册,看USART1-5,库里面是USART0-4,怎么对不上?新的手册才对上,其余外设编号可类推
库函数GPIO这种是简单的不一致,把大写改为小写,像CAN一些定义名称都改了

说白了,GD把ST的库移植一遍到GD的库,应用的时候,用户差不多同样的再次移植一遍
里面的关键还是版权问题

使用特权

评论回复
9
study1234| | 2022-5-12 11:06 | 只看该作者
没办法,ST买不起,GD还算买得起,现在也在做移植

使用特权

评论回复
10
阿秦123| | 2022-5-16 14:56 | 只看该作者
study1234 发表于 2022-5-12 11:04
不兼容才是正常的
历史原因,开始是可以用ST的库兼容,

好难,同样也是移植,但代码是前辈用ST的寄存器开发的

使用特权

评论回复
11
tpgf| | 2022-6-6 16:13 | 只看该作者
自己做一下修改吧

使用特权

评论回复
12
keaibukelian| | 2022-6-6 16:32 | 只看该作者
那么移植的时候怎么做呢

使用特权

评论回复
13
renzheshengui| | 2022-6-6 16:42 | 只看该作者
请问如何修改驱动呢

使用特权

评论回复
14
labasi| | 2022-6-6 16:52 | 只看该作者
这个是不是就是移植的工作了呢

使用特权

评论回复
15
paotangsan| | 2022-6-6 17:22 | 只看该作者
这是改改名字的小问题吗

使用特权

评论回复
16
wakayi| | 2022-6-6 17:52 | 只看该作者
是底层好改还是上层好改呢

使用特权

评论回复
17
chenjun89| | 2022-6-6 19:08 | 只看该作者
本身就不是完全兼容的

使用特权

评论回复
18
caoenq| | 2022-6-7 08:42 | 只看该作者
gxs64 发表于 2022-5-10 12:07
先用stm32调好,然后bin直接到gd32就可以了

真的可以么?还能这样操作?

使用特权

评论回复
19
gxs64| | 2022-6-7 16:24 | 只看该作者
本帖最后由 gxs64 于 2022-6-7 16:26 编辑
caoenq 发表于 2022-6-7 08:42
真的可以么?还能这样操作?

我就这样干的,当然必须是对应的芯片。stm32f103vc--->gd32f103vc  HCF4A0PGTB  at32f403avct7

使用特权

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

本版积分规则

19

主题

25

帖子

0

粉丝