打印
[CW32F030系列]

CW32F030CxTx--唤醒

[复制链接]
281|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2022-8-26 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过库函数和宏定义的方法完整初始化配置和输入输出的读写操作
工程文件的初始化
    GPIO_InitTypeDef GPIO_InitStruct;

    __RCC_GPIOA_CLK_ENABLE(); // 使能GPIO的配置时钟
    __RCC_GPIOB_CLK_ENABLE();

    GPIO_InitStruct.IT = GPIO_IT_FALLING;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pins = KEY_GPIO_PINS;
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(KEY_GPIO_PORT, &GPIO_InitStruct);

    GPIO_InitStruct.IT = GPIO_IT_NONE;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pins = 0xFF00;
    GPIO_Init(CW_GPIOB, &GPIO_InitStruct);

    //配置中断滤波为LSI,脉冲宽度小于LSI的则不会触发中断
    GPIO_ConfigFilter(CW_GPIOA, bv1 | bv2, GPIO_FLTCLK_LSI);

    PB09_SETHIGH();

    //等待PA01所在的端口为低后才进入DEEPSLEEP,以防止芯片被锁死(不能再进行调试)
    while (PA01_GETVALUE());
    GPIO_HighByte_Write(CW_GPIOB, 0); //从高8bit输出唤醒次数

    //清除PA01中断标志并使能NVIC    //相关程序在中断服务GPIOA_IRQHandler中进行处理
    GPIOA_INTFLAG_CLR(bv1 | bv2);
    NVIC_EnableIRQ(GPIOA_IRQn);

    tmp8 = 0x00;
响应代码
 SCB->SCR = 0x04;
        __WFI();

        tmp8++;
        GPIO_HighByte_Write(CW_GPIOB, tmp8); //从高8bit输出唤醒次数
这里就是看到两个LED为二进制计数。

使用特权

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

本版积分规则

534

主题

9412

帖子

21

粉丝