一、板卡介绍
GD32VW553是一款由兆易创新研发的RISC-V内核32为处理器支持WIFI 2.4G+蓝牙BLE5.2。主频高达160MHZ,内置真随机数生成器,拥有4MB flash和320KB SRAM以及可配置指令高速缓存32KB,同时板载硬件资源特别丰富:
3个串口、2个IIC接口、1个SPI以及四线QSPI,用于多达29个可编程GPIO接口。
同时资料也极为丰富,具体可以前往GD官网下载: 资料
当然编译环境GD也搞了很多如:IAR、eclipse、SEGGER
经过对比我个人建议要么自己用SDK+VSC搭建环境要么就使用SEGGER(IAR要钱。eclipse太难用了环境没配置好太抽象想用的可以看看: eclipse教程 ),在这里我采用非常简单的SEGGER。
二、环境搭建
1、 前往官网下载并安装: segger
2、 前往官网下载SDK及下载工具(可以下载这些)
2.1 下载这个串口下载工具,使用时拉低boot0在点击连接即可
2.2 SDK建议下载这两个(不打算用WIFI和蓝牙的忽略第二个)
2.3 下载环境补丁
3、搭建工程
3.1 安装好软件之后解压环境补丁点击上方的.empackpage文件,不出意外的的话软件会自动打开,这个时候不用管,代表你的补丁安装完了。如果你直接使用SDK里的示例工程那么3.1做完之后你可以直接跳到到第5点。
3.2新建工程
3.3 创建一个全新的工程(下面那个选项是在当前工程目录下再添加一个)
3.4 选择黄色区域内的选项(工程名称以及目录请自行修改,PS:不要有中文路径,不要有中文路径,不要有中文路径,不要有中文路径)
3.5 选择bin这样再工程目录下就能生成bin文件,然后一直点next
4、开始点灯
我们在使用一些arm32位单片机的时候都知道在我们想要使用某个I/O口的时候都需要先使能这个I/O口的时钟,然后设置这个I/O口的输入输出模式,最后再使用设置I/O口电瓶的函数就能够实现点灯,在这里,我们这款带面积的逻辑上也是这样的。
相应的函数有:
/*!
\arg RCU_GPIOx (x=A,B,C): GPIO ports clock
\arg RCU_CRC: CRC clock
\arg RCU_WIFI: WIFI clock
\arg RCU_WIFIRUN: WIFIRUN clock
\arg RCU_SRAMx: (x=0,1,2,3):SRAM clock
\arg RCU_DMA: DMA clock
\arg RCU_BLE: Blue tooth clock
\arg RCU_PKCAU: PKCAU clock
\arg RCU_CAU: CAU clock
\arg RCU_HAU: HAU clock
\arg RCU_TRNG: TRNG clock
\arg RCU_QSPI: QSPI clock
\arg RCU_TIMERx (x=0,1,2,5,15,16): TIMER clock
\arg RCU_WWDGT: WWDGT clock
\arg RCU_SPI: SPI clock
\arg RFI: RFI clock
\arg RCU_USART0: USART clock
\arg RCU_UARTx (x=1,2): UART clock
\arg RCU_I2Cx (x=0,1): I2C clock
\arg RCU_PMU: PMU clock
\arg RCU_RTC: RTC clock
\arg RCU_ADC : ADC clock
\arg RCU_SYSCFG: SYSCFG clock
\arg RCU_RF: RF clock
*/
rcu_periph_clock_enable(uint32_t gpio_periph)/使能GPIO时钟
/*!
\brief set GPIO mode
\param[in] gpio_periph: GPIOx(x = A,B,C)
only one parameter can be selected which is shown as below:
\arg GPIOx(x = A,B,C)
\param[in] mode: gpio pin mode
only one parameter can be selected which is shown as below:
\arg GPIO_MODE_INPUT: input mode
\arg GPIO_MODE_OUTPUT: output mode
\arg GPIO_MODE_AF: alternate function mode
\arg GPIO_MODE_ANALOG: analog mode
\param[in] pull_up_down: gpio pin with pull-up or pull-down resistor
only one parameter can be selected which is shown as below:
\arg GPIO_PUPD_NONE: floating mode, no pull-up and pull-down resistors
\arg GPIO_PUPD_PULLUP: with pull-up resistor
\arg GPIO_PUPD_PULLDOWN:with pull-down resistor
\param[in] pin: GPIO pin
one or more parameters can be selected which are shown as below:
\arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
\param[out] none
\retval none
*/
gpio_mode_set(uint32_t gpio_periph, uint32_t mode, uint32_t pull_up_down, uint32_t pin)//设置某个I/O口的模式
根据上面代码本次程序于是就有:
#include <gd32vw55x.h>
/*********************************************************************
*
* main()
*
* Function description
* Application entry point.
*/
int main(void) {
rcu_periph_clock_enable(RCU_GPIOA);
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5);
do {
gpio_bit_set(GPIOA, GPIO_PIN_5);
} while (1);
}
/*************************** End of file ****************************/
5、编译左变那个,右边是用调试器下载
6、 下载
6.1 将boot跳线这样子并复位
6.2 打开下载工具。
6.2.1 选择这个
6.2.3 连接
6.2.4 这样配置然后点browse
选这个
6.2.5 选择你工程目录下的这个路径
7、下载即可(记得把boot复原并复位)
三、 其他下载器下载
jlink下载:下载口为PA14(clk)(tp8测点)
PB3(dio)
四、建议
没有丝印、没有丝印、没有丝印,背面明明就有大面积的空白可以放下PIN的丝印,不知道为什么就是没有写,只能对着pdf一个一个数!!!!!

