[CW32F030系列] CW32F030CxTx--唤醒

[复制链接]
522|3
 楼主| 51xlf 发表于 2022-8-26 13:48 | 显示全部楼层 |阅读模式
通过库函数和宏定义的方法完整初始化配置和输入输出的读写操作
工程文件的初始化
  1.     GPIO_InitTypeDef GPIO_InitStruct;

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

  4.     GPIO_InitStruct.IT = GPIO_IT_FALLING;
  5.     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  6.     GPIO_InitStruct.Pins = KEY_GPIO_PINS;
  7.     GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  8.     GPIO_Init(KEY_GPIO_PORT, &GPIO_InitStruct);

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

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

  15.     PB09_SETHIGH();

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

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

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

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

551

主题

9967

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部