TA的每日心情 | 怒 2023-7-25 22:49 |
---|
签到天数: 385 天 连续签到: 1 天 [LV.9]以坛为家II
|
本帖最后由 党国特派员 于 2015-7-9 08:23 编辑
gd32的官方开发包现在的版本是1.0.1,使用过的人都知道需要自己定制所谓的模板,要手动来复制粘贴真是烦死人了。经过一段时间的研究,做出了Keil.GD32F1xx_DFP.1.0.2开发包,该开发包的特点就是已经加入了对标准库的支持,把标准驱动添加进去,在新建工程的时候可以选择要使用的设备驱动,省去复制粘贴过程,好了现在告别手动时代,一切交给keil去完成吧。
下面我就用1.0.2的开发包来做最简单的blink程序吧。
首先看下电路图:
我们只需要不停的变换PC10上的电平,再加上延时就可以了。
操作演示如下:
完成代码:- #include "gd32f1x0.h"
- #include "gd32f1x0_conf.h"
- #define u32 uint32_t
- //延时计数
- static u32 mdelay = 0;
- void SysTickConfig(void);
- void LedConfig(void);
- void delay_ms(u32 ms);
- int main()
- {
- SysTickConfig();
-
- LedConfig();
-
- while(1)
- {
- GPIO_SetBits(GPIOC,GPIO_PIN_10);
- delay_ms(100);
- GPIO_ResetBits(GPIOC,GPIO_PIN_10);
- delay_ms(100);
- }
- }
- //配置Systick
- void SysTickConfig(void)
- {
- // 1ms
- if (SysTick_Config(SystemCoreClock / 1000))
- {
- while (1);
- }
- NVIC_SetPriority(SysTick_IRQn, 0x00);
- }
- //Systick中断
- void SysTick_Handler(void)
- {
- if(mdelay >0)
- mdelay--;
- }
- //延时函数
- void delay_ms(u32 ms)
- {
- mdelay = ms;
- while(mdelay >0);
- }
- //led配置
- void LedConfig()
- {
- GPIO_InitPara gpio_initstruct;
- RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOC,ENABLE);
-
-
- gpio_initstruct.GPIO_Pin = GPIO_PIN_10 | GPIO_PIN_11;
- gpio_initstruct.GPIO_Mode = GPIO_MODE_OUT;
- gpio_initstruct.GPIO_OType = GPIO_OTYPE_PP;
- gpio_initstruct.GPIO_PuPd = GPIO_PUPD_NOPULL;
- gpio_initstruct.GPIO_Speed = GPIO_SPEED_50MHZ;
-
- GPIO_Init(GPIOC,&gpio_initstruct);
- GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11);
- }
复制代码 Keil.GD32F1xx_DFP.1.0.2开发包下载见:
https://www.cirmall.com/bbs/thread-42657-1-1.html |
|