APM32E030有PA/PB/PC/PD/PF等多组GPIO,可以配置为输入、输出、复用、模拟等多种功能。
本次代码基于开发板:APM32E030R Micro-EVB
现象LED:LED1(PB6)
驱动代码如下:
- #define GPIO_PORT (GPIOB)
- #define GPIO_PIN (GPIO_PIN_6)
- /*
- * [url=/u/brief]@brief[/url] GPIO初始化
- *
- * @param None
- *
- * @retval None
- *
- */
- void bsp_gpio_init(void)
- {
- GPIO_Config_T gpioConfig;
-
- RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOB);
- GPIO_ConfigStructInit(&gpioConfig);
- gpioConfig.pin = GPIO_PIN;
- gpioConfig.mode = GPIO_MODE_OUT;
- gpioConfig.outtype = GPIO_OUT_TYPE_PP;
- gpioConfig.speed = GPIO_SPEED_50MHz;
- gpioConfig.pupd = GPIO_PUPD_NO;
- GPIO_Config(GPIO_PORT, &gpioConfig);
- }
- /*
- * @brief GPIO翻转
- *
- * @param None
- *
- * @retval None
- *
- */
- void bsp_gpio_toggle(void)
- {
- if (GPIO_ReadOutputBit(GPIO_PORT, GPIO_PIN) == BIT_SET) {
- GPIO_ClearBit(GPIO_PORT, GPIO_PIN);
- } else {
- GPIO_SetBit(GPIO_PORT, GPIO_PIN);
- }
- }
测试代码如下:
- void delay(void)
- {
- volatile int n = 0xFFFFF;
- while(n--);
- }
- // 应用初始化
- void app_init(void)
- {
- bsp_gpio_init();
- }
- // 应用任务
- void app_task(void)
- {
- bsp_gpio_toggle();
- delay();
- }
详细代码,请查看附件:
Toggle.zip
(2.05 MB, 下载次数: 0)
|