STM32F0-> GD32E230代码移植,非直接刻录

由21ic Forum Narrow Secret网站生产的bbs.21ic.com ST的价格和交货时间毋庸置疑,每个人都知道,在其产品中大量使用ST芯片的公司正在寻找国内替代产品。

我们的产品追求的是MCU串行端口的相应速度。

经过用户的评估和针对性测试,GD32最终被确定为最佳产品。

性能不仅满足要求,而且价格也非常便宜。

它用来代替ST。

没有比这更好的了。

在项目开始时,我们与GD代理进行了面对面的交流。

他们建议通过修改相关的寄存器直接烧写ST代码,但是我们的实际测量并不理想。

因此,在他们的合作下,他们成功地用GD自己的固件库替换了ST芯片。

经过测试,该产品没有任何问题,即使由于GD频率较高,其运行效果也远远超出了预期!国产芯片,未来可期!以下是ST到GD的代码移植:区别:GD32E230与STM32F030相比具有良好的兼容性和更高的性价比,并且增强了内核和外围设备。

STM32F030和GD32E230在同一封装中引脚对引脚兼容。

在外围设备方面,我觉得GD32E230的功能涵盖了STM32F030。

大部分外设GD32E230与STM32F030完全兼容。

我将在后面详细介绍它们。

注意:STM32F030外设编号从1开始,GD32E103外设编号从0开始,并且命名有所不同。

这是STM32F030系列和GD32E230系列内部资源的概述。

由于GD的频率高于ST,因此会存在诸如使用直接编程进行移植时的不同延迟之类的问题。

这就是为什么我不使用这种方法的原因。

最好直接重写代码。

我们可以从最常用的开始。

由于时间原因,无法移植所有功能。

这是最常用的。

GPIO:例如,在使用STM32 USART1之前,我们需要初始化相关的IO操作:我们需要初始化GPIO时钟,然后定义端口多路复用模式,然后设置PA9,PA10 IO模式的速度和其他参数。

因为使用RS485,所以需要设置启用端口,这也需要在GD上完成。

但是,与ST库函数相比,GD更简洁,因为GD的库函数更加集成,使用起来更加方便快捷。

代码的最后两行应该是将端口的输出设置为高电平和低电平。

我使用了注册方法。

加快代码执行速度。

原型是:gpio_bit_set(uint32_t gpio_periph,uint32_t pin); gpio_bit_reset(uint32_t gpio_periph,uint32_t引脚);串行端口:GPIO初始化完成后,我们需要配置串行端口:众所周知,在此配置串行端口的起始位速率和波特率,停止位,数据位。

这在GD上的相同模式中得到了反映:可以看出,代码的简洁性是不同的。

GD的外围配置类似于ST的HAL库,简化了代码量,但是设置仍然相同。

设置完成后,可以使用库函数的发送和接收功能:需要提及的一件事是,应该使用while(RESET == usart_flag_get(USART0,USART_FLAG_TC ));我一直被困在这里,这是最好的方法。

接收功能的代码执行效率确实不高。

我使用的是直接操作寄存器,如果需要可以从中学习。

如果需要使用串行端口中断,请直接调用以下函数:nvic_irq_enable(USART0_IRQn,0); usart_interrupt_enable(USART0,USART_INT_RBNE);首先在这里,我们将跟进。

本文是21ic论坛网民Naomi Mi的原始作者免责声明:本文内容经21ic授权后发布,版权归原始作者所有。

该平台仅提供信息存储服务。

本文仅代表作者的个人观点,并不代表该平台的立场。

如有任何疑问,请与我们联系,谢谢!

客服
分享
电话
服务电话:
TOP
深圳市相信过程科技有限公司❤舒先生❤欢迎您的咨询 深圳市相信过程科技有限公司❤舒先生❤欢迎您的咨询
服务电话
联系我们

    深圳市相信过程科技有限公司❤舒先生❤欢迎您的咨询