网站:bbs.21ic.com
下面就进行ST对GD的代码移植:
区别:GD32E230 对比 STM32F030 有着很好的兼容性和更高的性价比,内核和外设都有所增强。
STM32F030 与 GD32E230 在相同封装下是 Pin To Pin 兼容的。 外设上本人觉得 GD32E230
功能覆盖 STM32F030,大部分外设 GD32E230 完全兼容 STM32F030, 后文我会具体介绍。
注意:
STM32F030 外设编号从 1 开始, GD32E103 外设编号从 0 开始,且命名有差异。
这里介绍了STM32F030 系列和 GD32E230 系列内部资源对比总览
因为GD在主频上高于ST,所以在使用直接烧录的方式移植时会出现延时不同等问题,这也是我不采用此方法的原因,不如直接重写代码。
我们可以从最常用的开始,因为时间原因,不可能全部的函数都移植,这里介绍最常用的。
GPIO:例如我们使用STM32 USART1前需要初始化相关的IO操作:
代码的最后两行应该是设置端口的输出高低电平,我采用了寄存器的方式。加快代码运行速度。
原型是:gpio_bit_set(uint32_t gpio_periph,uint32_t pin);
gpio_bit_reset(uint32_t gpio_periph,uint32_t pin);
可以看得到的是代码的简洁程度是不同的,GD的外设配置和ST的HAL库有些类似,精简了代码量,但是设置的东西还是一样的。
设置完成后就可以使用库函数的发送和接收函数:
接收函数的代码执行效率着实不高。我使用的是直接操作寄存器,有需要的可以借鉴一下。
nvic_irq_enable(USART0_IRQn, 0);
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!