本帖最后由 happyzn75 于 2022-7-18 10:12 编辑
众所周知,处理器架构一直被欧洲和美国的ARM架构和X86架构所把持着,我们中国芯片的出路在哪?不要慌,RISC架构,这个架构可能就是我们自研芯片弯道超车的一个拐点,很多AI都用这个架构做的处理器。
今天我们开箱一个也是这个架构做的处理器,兆易创新的GD32VF103R-START,它的很多方面和常用的ST系列芯片很像,编译器也可以实时在线仿真,驱动程序用的库函数也和ST非常像,真的对初学者以及有一定经验的嵌入式工程师都非常友好,程序一直起来非常快。
不说啦,开箱啦,板子外观没有什么损伤,快递还是很靠谱的,我们进入单片机世界是从点亮第一个LED灯开始的,今天我们继续,毕竟搞定IO、timer、AD、中断、UART基本一个小芯片就五脏俱全了。
点亮LED灯的程序当然是一如既往的简单,首先当然是时钟初始化,rcu_periph_clock_enable(RCU_GPIOA);然后设置IO口的输出方式、速度和第几个口,这里就和ST一样了,gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10);然后看电路板上二极管时共阴还是共阳,简单写俩句,基本就可以啦gpio_bit_reset(GPIOA, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10);大家肯定也都明白,我就不赘述了。直接看下面的图吧。
void led_init(void) { /* enable the LEDs clock */ rcu_periph_clock_enable(RCU_GPIOA); rcu_periph_clock_enable(RCU_GPIOC); /* configure LEDs GPIO port */ gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6); gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10); gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13);
/* turn off LEDs */ gpio_bit_reset(GPIOA, GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10); gpio_bit_reset(GPIOC, GPIO_PIN_13); }
|