8。DA14531 Hibernate模式da14531数据表有关无缝唤醒控制器和所有可用睡眠模式的完整描述。
笔记
您必须创建了一个修改的版本extent_peripheral_template.示例项目,如下所述初始项目章节,在继续之前!
8.2.2。SPI闪光灯user_app_on_init.功能:
静止的空白flash_power_down.(空白){/ *默认SPI配置* /静止的constspi_cfg_t.spi_cfg.={。spi_ms.=spi_ms_mode_master.那。spi_cp.=spi_cp_mode_0.那。spi_speed=spi_speed_mode_4mhz.那。spi_wsz.=spi_mode_8bit.那。spi_cs.=spi_cs_0.那。CS_PAD.。港口=spi_en_port.那。CS_PAD.。别针=spi_en_pin.那。spi_capture.=spi_master_edge_capture.那};/ *将接口初始化为spi flash * /spi_initialize.(&spi_cfg.);/ *禁用P0_0上的HW RST,所以它可以用作SPI MOSI * /gpio_disable_hw_reset.();spi_flash_power_down.();/ *重新启用HW复位输入(如果进一步操作时必须被禁用)执行外部闪存) - 必须先设置为输入!* /gpio_configurepin.(spi_do_port.那spi_do_pin.那Input_Pulldown.那PID_GPIO.那错误的);gpio_enable_hw_reset.();}
也必须添加以下包含文件user_empty_peripheral_template.c.文件:
#包括“spi.h”#包括“spi_flash.h”#包括“user_periph_setup.h”#包括“arch_hibernation.h”
静止的空白flash_power_down.(空白){/ *默认SPI配置* /静止的constspi_cfg_t.spi_cfg.={。spi_ms.=spi_ms_mode_master.那。spi_cp.=spi_cp_mode_0.那。spi_speed=spi_speed_mode_4mhz.那。spi_wsz.=spi_mode_8bit.那。spi_cs.=spi_cs_0.那。CS_PAD.。港口=spi_en_port.那。CS_PAD.。别针=spi_en_pin.那。spi_capture.=spi_master_edge_capture.那};/ *将接口初始化为spi flash * /spi_initialize.(&spi_cfg.);/ *禁用P0_0上的HW RST,所以它可以用作SPI MOSI * /gpio_disable_hw_reset.();spi_flash_power_down.();/ *重新启用HW复位输入(如果进一步操作时必须被禁用)执行外部闪存) - 必须先设置为输入!* /gpio_configurepin.(spi_do_port.那spi_do_pin.那Input_Pulldown.那PID_GPIO.那错误的);gpio_enable_hw_reset.();}
#包括“spi.h”#包括“spi_flash.h”#包括“user_periph_setup.h”#包括“arch_hibernation.h”
8.2.3。进入船舶模式Enter_Ship_Mode.函数到开始user_empty_peripheral_template.c.文件,之前user_on_init.
功能:
静止的空白Enter_Ship_Mode.(空白){Arch_printf.(“\ n \ r%s“那__功能__);/ *在进入船舶模式之前,确保所有调试输出都完成* /ARCH_PRINTF_PROCESS.();尽管(GetBits32.(UART2_USR_REG.那UART_BUSY.)!=0.);/ *将设备放入休眠模式,没有RAM保留(唤醒唤醒)功能不返回* /Arch_set_hibernation.(0x20.那/ * p0_5 * /pd_sys_down_ram_off.那pd_sys_down_ram_off.那pd_sys_down_ram_off.那remap_addr0_to_rom.那错误的);}
静止的空白Enter_Ship_Mode.(空白){Arch_printf.(“\ n \ r%s“那__功能__);/ *在进入船舶模式之前,确保所有调试输出都完成* /ARCH_PRINTF_PROCESS.();尽管(GetBits32.(UART2_USR_REG.那UART_BUSY.)!=0.);/ *将设备放入休眠模式,没有RAM保留(唤醒唤醒)功能不返回* /Arch_set_hibernation.(0x20.那/ * p0_5 * /pd_sys_down_ram_off.那pd_sys_down_ram_off.那pd_sys_down_ram_off.那remap_addr0_to_rom.那错误的);}
接下来,我们将通过添加以下内容来保留P0_5gpio_revations.
功能可以在其中找到user_periph_setup.c.文件:
保留_GPIO.(SW2.那sw2_port.那SW2_pin.那PID_GPIO.);
最后,我们将配置P0_5来充当通过添加以下内容的上拉的输入set_pad_functions.
也可以在其中找到的功能user_periph_setup.c.文件:
gpio_configurepin.(sw2_port.那SW2_pin.那input_pullup.那PID_GPIO.那错误的);