当前位置:首页 > 公众号精选 > 大鱼机器人
[导读]一、 前言大家好,我是张巧龙,最近ST涨价厉害,单位的物料成本也是频频告急。网上一直传,什么完美替代,直接就能用。说不心动吧,那是假的。看到嵌入式ARM这篇关于GD32替代STM32的文章,特此分享给大家。相信完美替代么?我是做技术的,不是销售,真的能无缝替代,那不就是一个东西么...

一、 前言


大家好,我是张巧龙,最近ST涨价厉害,单位的物料成本也是频频告急。网上一直传,什么完美替代,直接就能用。说不心动吧,那是假的。
看到嵌入式ARM这篇关于GD32替代STM32的文章,特此分享给大家。
相信完美替代么?我是做技术的,不是销售,真的能无缝替代,那不就是一个东西么?
我是不信的,到底怎么样,这次试试看。
先看看GD和ST枯燥的对比吧

这样看来,貌似GD比ST的性能有所提升啊。
二、正式开始尝试替代
当前所用芯片STM32F407ZGT6,联系了GD的代理,要了样片,居然给我的是GD32F450ZGT6,按照惯性思维不应该也是407么?
联系技术支持,聊了很多,大概的意思是可能发错芯片了,但是450引脚也是兼容的,可以先试试~~~
好吧,既来之则安之。
下面记录下折腾的过程,因为一直使用干净的STM32的底子,很少建立工程了,中间出了一些问题,后来想想,一并贴出来吧,分享了有个人能少采坑也是好的。
1.  更换芯片(GD32F450ZGT6替代STM32F407ZGT6)
这块板子用的资源比较多,串口、AD、norflash、nandflash、FRam、io、显示

2. 原st的程序直接下载。(我相信是不行的,但被完美替代的魔咒念了很久,必须尝试下)
答案是:不可以。(直接下不行,要重新编译下,后面小结会说)
3.  这下心里踏实了,按部就班慢慢捋一捋。
决定先完善下开发环境并且看看官网有没有例程,跑个简单的试一试。
3.1把开发环境搭建好
先看看官网http://www.gd32mcu.com/cn/download/7?kw=GD32F4

然后找找官网的例程

3.2我用的是MDK5,首先安装支持包
这是官网下载的支持包

一切就绪,发现有些问题,不能选择芯片,这是什么鬼?难道是版本问题?
不确定是不是这里的问题,mdk从5.14升级到5.23试试。
然后还是有问题,这里不知道为什么有问题,自己添加一下。

然后,还是不对,不能选择GD的芯片,怎么办?
我要开始暴躁了,怎么哪都是事?
喝口水,去个厕所~~~
刚官网的压缩包里,还有个文件

本来以为这个是要keil4才需要安装的,安装下试试吧。
(这个也许不需要,中间解决问题的时候,急躁了写,总被完美替代的魔咒环绕,来回换了几个工程,各位搭建环境时,耐心点~~~)
最终,可以了:

然后Debug选择Jlink

加载好flash

至此,开发环境应该是可以了,继续。
3.3 用官网的例程,先看看是不是程序能跑起来。
这里使用最简单的GPIO控制led。

由于使用的我的板子硬件上和例程不一样,需将对应的IO改一下
修改如下:
int main(void)
{    /* configure systick */    systick_config();        /* enable the LEDs GPIO clock */    rcu_periph_clock_enable(RCU_GPIOB);        /* 我的板子LED是PB8、PB9 需要修改如下*/     gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_8 | GPIO_PIN_9);    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8 | GPIO_PIN_9);    gpio_bit_reset(GPIOB, GPIO_PIN_8 | GPIO_PIN_9);
while(1){
        /* 先随便设置下,一个亮一个灭*/       gpio_bit_set(GPIOB, GPIO_PIN_8);      gpio_bit_reset(GPIOB, GPIO_PIN_9); delay_1ms(400);
    /* 状态翻转*/       gpio_bit_set(GPIOB, GPIO_PIN_9);      gpio_bit_reset(GPIOB, GPIO_PIN_8);      delay_1ms(400);    }}
其余的地方,不做修改,编译通过,下载~
啊欧,这样了

大意了,之前用ST的,我这里直接默认就是SW,更改一下就好了.

然后下载,ok。
两个黄绿色的LED3,LED1就是程序里对应的PB8和PB9控制的。
LED3和LED1交替闪烁(我不知道能不能插入小视频,这里拍了两张照片示意下)

至此,程序是能跑起来了,也算是没有白折腾。
如果想使用GD的库的话,其他功能,后边慢慢添加吧。
开发环境和GD的固件库没问题,一边截屏写文档,一边干活,还真不是容易的事。
用GD的固件库,程序可以跑起来,说明引脚兼容不是事,后面又返回去试了试我之前的ST程序,发现竟然有意想不到的惊喜。

因为比较顺利,就不截屏了,直接看小结。

小结:
1、一定要认真搭建开发环境,心里不要有抵触,工欲善其事,必先利其器。
(由于ST开发的比较成熟,有干净的底子程序,因此对于开发环境搭建、工程建立有所疏忽,遇到了一些小阻力,索性也都贴了出来。)
2、关于库,还是建议使用GD的库。
(虽然我当前用ST的库也可以,但是心里上还是觉得,是谁的东西,用谁的库比较好。这样做起来,后期也踏实。如果使用资源不多的话,还是把库更新过来吧。)
但对于之前的ST程序也做了尝试。
    2.1对于ST的程序HAL库 uciii emwin,程序重新编译下载,正常运行,具体功能模块功能初步测试正常。
(以为硬件是FSMC 8875的形式,当时技术支持说,显示可能会有问题,但实测功能正常。并且开始支持说,使用HAL库可能不行,但我这里却可以,是我吃了什么药了么?可别使用我抽家园币的运气啊~~~)
    2.2对于ST的标准库 uciii试了一下,程序重新编译下载,简单测试串口和IO正常。
3、初步测试的话,还真可以说是完美替代。
开始程序有问题,是开发环境的事。安装了GD的pack之后,MDK重新选择芯片和片上FLASH,编译下载程序就能跑起来。这一点,也确实惊到了我,看来是我目光短浅了,国产芯片崛起的曙光来了。
选择替代芯片时,官网有个选型手册,参考一下,也可以联系下技术支持,他们应该有一些前人使用的经验,可以少采坑。-END-

大家好,我是张巧龙,一名教电子的大学老师,欢迎关注!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

电磁铁是一种利用电流产生磁场的装置,具有快速响应、易于控制等特点,在工业自动化、电子设备、科学实验等领域有着广泛的应用。STM32是一款功能强大的微控制器,具有高性能、低功耗、易于编程等优点,是控制电磁铁的理想选择。本文...

关键字: 电磁铁 微控制器 STM32

边缘人工智能的实现涉及到三个基本 要素:安全性,连接性、自主性,而其中自主性是AI能力的体现,也是边缘AI有别于其他传统的物联网的关键。而通过ST Edge AI套件,就可以帮助各种不同类型的开发者实现覆盖全硬件平台的全...

关键字: 边缘人工智能 AI STM32

今天,小编将在这篇文章中为大家带来STM32单片机最小系统的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 单片机最小系统 STM32

STM32是一款由STMicroelectronics生产的微控制器系列,具有高性能、低功耗和丰富的外设资源。其中,串口通信是一种常用的通信方式,可以实现与其他设备之间的数据传输。

关键字: STM32 串口通信 微控制器

STM32是一种广泛使用的微控制器,具有丰富的通信接口。其中,串口通信是STM32与其他设备或系统进行数据交换的重要方式之一。本文将详细介绍STM32串口通信的原理、应用及常见故障。

关键字: STM32 串口通信

由于目前缺乏相应的监测技术,地下电缆线路出现异常运行状态无法被及时发现,久而久之易演变成大故障,最终只能通过更换地下电缆进行修复,耗费大量的人力、物力。鉴于此,开发了一种基于STM32的地下电缆异常状态检测系统,利用热传...

关键字: STM32 地下电缆

交通灯控制器是用于控制交通信号灯运行的设备,它可以根据交通流量、行人需求以及其他因素,动态地调整信号灯的变化时间和绿灯时长,以保证交通的流畅和安全。

关键字: 交通信号灯 STM32
关闭
关闭