因为种种原因,从STM32转到使用国产芯片,目前有GD32和CH32。因为GD32没有给我拜票开发版,CH32给了,所以目前手头就有CH32的开发板,后期会更新一些CH32V203的内容。

如果以前没听说过CH32,那做硬件的几乎都听过CH340这个芯片或是驱动。几乎承包了我所能接触的串口芯片的70%的天下,而CH32也就是他们公司所推出的基于开源的RISC-V架构的单片机。

看这Flash,看这配置,看这价格,太香了。

开发的话官方推荐使用MRS(MounRiver Studio),也是国内厂家魔改的Eclipse,但很好用(比ESP-IDF好用得多),能支持GD32或是其他的一些单片机。烧录器使用的是WCH LINK,也有小伙伴使用Keil和Jlink进行开发,这个随个人喜好。

现在来愉快的点个灯:

#include "debug.h"

void GPIO_Toggle_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

int main(void)
{
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);

    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    {
        Delay_Ms(250);
        GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
    }
}

使用的PA0引脚进行点灯,和STM32的代码比不能说是一模一样,只能说是毫无差别。后续还会更新一些CAN,ADC,Usart,Flash的内容(公司项目就用到这么多功能)滑稽

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐