AT32 LED 点灯程序

配置 GPIO

首先要包含 GPIO 固件库,我用的是 MDK5,
image

gpio_config() 函数:

/** @brief gpio config
  *	@biref LED IO Config
  */
void gpio_config(void)
{
    /* 定义 GPIO 初始化结构体 */
    gpio_init_type gpio_init_struct;

    /* 使能 GPIOA 外设时钟 */
    crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);

    /* 设置默认参数 */
    gpio_default_para_init(&gpio_init_struct);

    /* 配置 GPIO 参数 */
    gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; /* 较大电流推动/吸入能力 */
    gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; /* 推挽输出 */
    gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
    gpio_init_struct.gpio_pins = GPIO_PINS_2;
    gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
    gpio_init(GPIOA, &gpio_init_struct);
}

LED 闪烁

这里用到了 gpio_bits_write(); 函数,该函数可以修改 io 的电平高低。

uint8_t led_flag = 0x01;

int main(void)
{
    system_clock_config();
    gpio_config();

    while(1)
    {
		gpio_bits_write(GPIOA, GPIO_PINS_2, led_flag);
		for (int i=0; i<500000; i++);
		led_flag ^= 0x01;
    }
}
posted @ 2023-08-01 00:33  小土坡  阅读(184)  评论(0)    收藏  举报