小红板GD32F190那些事之工程模块建立篇
一、 硬件连接
1、小编硬件配置
图1.1电脑系统属性
2、将小红板连入电脑后
图1.2串口驱动成功图
3、小编的驱动是电脑自动安装的,如果你的出现叹号或安装不成功,请以管理员身份安装驱动,驱动下载网:https://www.eeboard.com/gd32f190mcu/?ziliao
图1.3需下载的资料图
同时请将上面的资料全部下载下来。
二、 工程环境搭建
1、看自己Keil的版本是否支持GD32,不然需要去网上下载一个5.13以上版本的Keil
我用的这个5.16a 大家可以在这下载https://pan.baidu.com/s/1hq92Zwo
2、当装好keil后,我们需下载将GD32F1x0_Firmware_Library_V2.0.0.rar解压后点击运行。出现下图后直接点击Next即可,不要做其他任何操作。
图2.1安装GD32F1x0_Firmware_Library_V2
3、当我们上述工作都完成了,我们打开keil,点击projectànew uVision project新建工程保存后就能看到下图中的内容。若没有,我们要将Device选成Software Packs,不然将重新安装GD32F1x0_Firmware_Library_V2
图2.2 GD32F190Device
三、工程创建
1、创建两个目录Library 和 project,我们将下载的资料中的GD32F1x0_Firmware_Library_V2.0.0.rad,解压后拷贝到Library中。并按照上面工程环境搭建中的第3点将工程命名后保存到project文件夹中。弹出如下对话框,我们进行选择则如下图。
图3.1 Device配置
2、接下来就是我们工程模板制作过程。请按下面图的顺序操作
图3.2模板创建一
图3.2模板创建二
路径:library\GD32F1x0_Firmware_Library_V2.0.0\Firmware\CMSIS\ARM
图3.3模板创建三
路径:library\GD32F1x0_Firmware_Library_V2.0.0\Firmware\CMSIS
图3.4模板创建四(全部添加进去)
路径: library\GD32F1x0_Firmware_Library_V2.0.0\Firmware\Peripherals\src
图3.5模板创建五(如上图将选中的文件拷贝到project文件夹下)
图3.6模板创建六
路径: \project(刚复制过来文件中的C文件)
图3.7模板创建七
路径: \project
图3.7模板创建八
图3.7模板创建九
图3.7模板创建十(添加头文件的搜索路径)
图3.7模板创建十一(选择下载方式)
图3.7模板创建十二(选择下载方式)
图3.7模板创建十三(选择Flash)
到此我们的工程配置就全部完成了。接下来就是写程序了。
四、实现流水灯
1、代码
/** ****************************************************************************** * @file main.c * @author shamozhihuong * @version V2.0.0 * @date 04-May-2016 * @brief The main function file. ****************************************************************************** *//* Includes ------------------------------------------------------------------*/#include "gd32f1x0.h"#include "systick.h"/* Private functions ---------------------------------------------------------*/void GD_GPIO_Confing(void){ GPIO_InitPara GPIO_InitStructure; /* Enable the LED Clock */ RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOB, ENABLE); /* Configure the LED pin */ GPIO_InitStructure.GPIO_Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_ResetBits(GPIOB, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10); }/** * @brief Toggle the LED every 500ms. * @param None * @retval None */void DG_Delay(void){ int x,y; for(x=0;x<0x2ff;x++) for(y=0;y<0x2ff;y++);}/** * @brief Main program. * @param None * @retval None */int main(void){ GD_GPIO_Confing(); //SysTick_Configuration(); while (1) { GPIO_ResetBits(GPIOB, GPIO_PIN_9|GPIO_PIN_10); GPIO_SetBits(GPIOB, GPIO_PIN_8); DG_Delay(); GPIO_ResetBits(GPIOB, GPIO_PIN_8|GPIO_PIN_10); GPIO_SetBits(GPIOB, GPIO_PIN_9); DG_Delay(); GPIO_ResetBits(GPIOB, GPIO_PIN_8|GPIO_PIN_9); GPIO_SetBits(GPIOB, GPIO_PIN_10); DG_Delay(); }}/******************* (C) COPYRIGHT 2016 shamozhihuong *****END OF FILE****/2、实验结果
|