AON_GPIO Input & Output
AON_GPIO Input & Output示例实现了AON_GPIO的输入输出功能。
- 配置为普通输出时,通过程序AON_GPIO Input & Output示例控制IO上电平的变化。
- 配置为普通输入时,通过程序AON_GPIO Input & Output示例读取IO上电平的高低。
AON_GPIO Input & Output示例的源代码和工程文件位于SDK_Folder\projects\peripheral\aon_gpio\aon_gpio_output_input,其中工程文件在文件夹Keil_5下。
代码理解
示例工程流程图如图 7所示:
- 配置AON_GPIO模块输入/输出模式。
#define AON_GPIO_DEFAULT_CONFIG \ { \ .pin = AON_GPIO_PIN_ALL, \ .mode = AON_GPIO_MODE_INPUT, \ .pull = AON_GPIO_PULLDOWN, \ .mux = AON_GPIO_MUX_7, \ } aon_gpio_init_t aon_gpio_init = AON_GPIO_DEFAULT_CONFIG; aon_gpio_init.pin = AON_GPIO_PIN_7; aon_gpio_init.mode = AON_GPIO_MODE_OUTPUT; hal_aon_gpio_init(&aon_gpio_init); aon_gpio_init.pin = AON_GPIO_PIN_6; aon_gpio_init.mode = AON_GPIO_MODE_INPUT; hal_aon_gpio_init(&aon_gpio_init);- init.pin:引脚配置ID,可选择AON_GPIO_PIN_0 ~ AON_GPIO_PIN_7任意组合。
- init.mode:引脚工作模式,可选择AON_GPIO_MODE_INPUT、AON_GPIO_MODE_OUTPUT、AON_GPIO_MODE_MUX、
AON_GPIO_MODE_IT_RISING、AON_GPIO_MODE_IT_FALLING、AON_GPIO_MODE_IT_HIGH、
AON_GPIO_MODE_IT_LOW。
- init.pull:上下拉电阻配置,可选择AON_GPIO_NOPULL、AON_GPIO_PULLUP、AON_GPIO_PULLDOWN。
- init.mux:pin_mux配置,参考GR551x Datasheet中的pin_mux配置表,输入/输出时需配置为AON_GPIO_MUX_7。
当需要配置为输入时,只需要修改mode:
aon_gpio_init.mode = AON_GPIO_MODE_INPUT; - 设置输出引脚电平。
hal_aon_gpio_write_pin(AON_GPIO_PIN_7, AON_GPIO_PIN_RESET);参数AON_GPIO_PIN_RESET表示设置为低电平,AON_GPIO_PIN_SET表示设置为高电平。
- 读取输入引脚电平。
pin_level = hal_aon_gpio_read_pin(AON_GPIO_PIN_6);pin_level为0表示低电平,为1表示高电平。
测试验证
- 用GProgrammer下载aon_gpio.bin至开发板。
- 将开发板串口连接至PC端,打开并配置GRUart。
- 在GRUart的Receive Data窗口中将会显示IO口的输入/输出状态信息。