发新帖我要提问
123
返回列表
打印

【原创】《wdxLib_for_GD32F103》驱动开发(V0.2)

[复制链接]
楼主: 周立功GD32
手机看帖
扫描二维码
随时随地手机跟帖
41
bowei181| | 2014-3-4 09:52 | 只看该作者 回帖奖励 |倒序浏览
这个不错,看看能不能通用

使用特权

评论回复
42
wguiyong| | 2014-3-22 18:59 | 只看该作者
周先生的支持一定火,顶。

使用特权

评论回复
43
wguiyong| | 2014-3-25 19:38 | 只看该作者
使用其中的KEY和LED例程,功能正常。但是增加3个按键KEY4,KEY5,KEY6,分别定义如下,扫描的键值不便,请大家指点下吧,谢谢。
/*********************************************************************************************************
    ¶¨Òå¿ØÖÆKEYµÄGPIO¶Ë¿ÚºÍ¹Ü½Å
*********************************************************************************************************/
static  GPIO_TypeDef  *KEY1_PORT;
static  uint16_t       KEY1_PIN;

static  GPIO_TypeDef  *KEY2_PORT;
static  uint16_t       KEY2_PIN;

static  GPIO_TypeDef  *KEY3_PORT;
static  uint16_t       KEY3_PIN;

static  GPIO_TypeDef  *KEY4_PORT;
static  uint16_t       KEY4_PIN;

static  GPIO_TypeDef  *KEY5_PORT;
static  uint16_t       KEY5_PIN;

static  GPIO_TypeDef  *KEY6_PORT;
static  uint16_t       KEY6_PIN;
/*********************************************************************************************************
    ¶¨ÒåKEY
*********************************************************************************************************/
#define  KEY1   0x01
#define  KEY2   0x02
#define  KEY3   0x04
#define  KEY4   0x08
#define  KEY5   0x10
#define  KEY6   0x20

/*********************************************************************************************************
    KEY³õʼ»¯
*********************************************************************************************************/
void KeyInit(uint8_t KEY, GPIO_TypeDef *GPIOx, uint16_t PINn)
{
    switch (KEY)
    {
    case KEY1:
        KEY1_PORT  = GPIOx;
        KEY1_PIN   = PINn;
        ValidFlag |= KEY1;
        gpioPeriphEnable(KEY1_PORT);
        gpioModeConfig(KEY1_PORT, KEY1_PIN, GPIO_MODE_IN_PU);
        break;

    case KEY2:
        KEY2_PORT  = GPIOx;
        KEY2_PIN   = PINn;
        ValidFlag |= KEY2;
        gpioPeriphEnable(KEY2_PORT);
        gpioModeConfig(KEY2_PORT, KEY2_PIN, GPIO_MODE_IN_PU);
        break;

    case KEY3:
        KEY3_PORT  = GPIOx;
        KEY3_PIN   = PINn;
        ValidFlag |= KEY3;
        gpioPeriphEnable(KEY3_PORT);
        gpioModeConfig(KEY3_PORT, KEY3_PIN, GPIO_MODE_IN_PU);
        break;
     
                case KEY4:
        KEY4_PORT  = GPIOx;
        KEY4_PIN   = PINn;
        ValidFlag |= KEY4;
        gpioPeriphEnable(KEY4_PORT);
        gpioModeConfig(KEY4_PORT, KEY4_PIN, GPIO_MODE_IN_PU);
        break;

    case KEY5:
        KEY5_PORT  = GPIOx;
        KEY5_PIN   = PINn;
        ValidFlag |= KEY5;
        gpioPeriphEnable(KEY5_PORT);
        gpioModeConfig(KEY5_PORT, KEY5_PIN, GPIO_MODE_IN_PU);
        break;

    case KEY6:
        KEY6_PORT  = GPIOx;
        KEY6_PIN   = PINn;
        ValidFlag |= KEY6;
        gpioPeriphEnable(KEY6_PORT);
        gpioModeConfig(KEY6_PORT, KEY6_PIN, GPIO_MODE_IN_PU);
        break;
                               
    default:
        break;
    }
}

/*********************************************************************************************************
    Åж¨KEYÊÇ·ñÓÐЧ£¨Ö»Óгõʼ»¯Ö®ºó²Å»áÉúЧ£©
*********************************************************************************************************/
#define  KeyIsValid(KEY)    (ValidFlag & (KEY))
/*********************************************************************************************************
    ¶ÁÈ¡KEYÖµ
*********************************************************************************************************/
uint8_t KeyGet(void)
{
    uint8_t  key = 0x00;

    if (KeyIsValid(KEY1))if (!gpioPinRead(KEY1_PORT, KEY1_PIN)) key |= KEY1;
    if (KeyIsValid(KEY2))if (!gpioPinRead(KEY2_PORT, KEY2_PIN)) key |= KEY2;
    if (KeyIsValid(KEY3))if (!gpioPinRead(KEY3_PORT, KEY3_PIN)) key |= KEY3;
    if (KeyIsValid(KEY4))if (!gpioPinRead(KEY4_PORT, KEY4_PIN)) key |= KEY4;
    if (KeyIsValid(KEY5))if (!gpioPinRead(KEY5_PORT, KEY5_PIN)) key |= KEY5;
    if (KeyIsValid(KEY6))if (!gpioPinRead(KEY6_PORT, KEY6_PIN)) key |= KEY6;
       
    return (key);
}
不知道这么改动错在哪里了?

使用特权

评论回复
44
wangdezhi| | 2014-3-31 23:57 | 只看该作者

使用特权

评论回复
45
wangdezhi| | 2014-3-31 23:58 | 只看该作者

使用特权

评论回复
46
gxliu08| | 2014-8-2 14:08 | 只看该作者
感谢分享,谢谢,学习学习

使用特权

评论回复
47
爱情转移| | 2015-3-7 11:16 | 只看该作者
感觉写的太乱,改来改去的,还要修改KEIL下的文件,不符合使用习惯

使用特权

评论回复
48
onlylgb| | 2016-3-29 14:25 | 只看该作者
收藏备用GD32库

使用特权

评论回复
49
Ketose| | 2016-3-31 20:46 | 只看该作者
谢谢了。。。。。

使用特权

评论回复
50
a7250658| | 2016-12-29 15:56 | 只看该作者
好东西!!谢谢大神

使用特权

评论回复
51
akenonline| | 2017-1-10 10:01 | 只看该作者
感谢楼主分享。。。。。。。。。。。。。。。

使用特权

评论回复
52
FrenkieWang| | 2017-1-22 08:13 | 只看该作者
好资料,顶楼主,谢谢了

使用特权

评论回复
53
lyglary| | 2024-3-14 14:43 | 只看该作者
小顶小顶

使用特权

评论回复
54
理想阳| | 2024-5-28 10:08 | 只看该作者
《wdxLib_for_GD32F103驱动开发手册(V0.2):针对GD32F103的驱动库设计与应用指南》介绍一种简单易懂的GD系列微控制器开发流程,旨在提供开发者在嵌入式领域关于此库的驱动开发经验参考。如需简洁概述,可描述为:《wdxLib_for_GD32F103驱动开发手册V0.2版:开发指南与经验分享》。

使用特权

评论回复
55
digit0| | 2024-6-6 09:43 | 只看该作者
开拓国内第一工作,大力支持!

使用特权

评论回复
56
天天向善| | 2024-6-7 00:36 | 只看该作者
大明星教练,你好吗? 你好。

使用特权

评论回复
57
软核硬核| | 2024-6-16 15:06 | 只看该作者
觉得写得太凌乱,改变就改变,还要修改下文件,不符合使用习惯

使用特权

评论回复
58
FranklinUNK| | 2024-6-20 15:59 | 只看该作者
这个库是干嘛用的啊?

使用特权

评论回复
59
有何不可0365| | 2024-7-31 21:47 | 只看该作者
在使用GD32F407进行串口通信并启用硬件流控制时,如果出现数据丢失的问题,可能确实与流控制引脚的配置有关。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则