AT32 LED 点灯程序
配置 GPIO
首先要包含 GPIO 固件库,我用的是 MDK5,

写 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;
}
}

浙公网安备 33010602011771号