STM32流水灯的两种实现方式(库函数版)

    科技2022-07-11  117

    硬件连接

    我接到了PA口0~7

    参考代码

    一些使用到的函数 可以参考我的这一篇文章

    调用函数PAout(n)

    #include "led.h" #include "delay.h" #include "sys.h" int main(void) { unsigned char i = 0; delay_init(); //延时函数初始化 LED_Init(); //初始化与 LED 连接的硬件接口 GPIO_SetBits(GPIOA, GPIO_Pin_All);//关闭所有的灯 注意A2开发版用的共阳极 这里是置1 while(1) { for(i = 0;i<8;i++) { PAout(i) = 0; if(i>0) PAout(i-1) = 1; delay_ms(1000); } PAout(7) = 1; } }

    使用寄存器BSRR

    注意:BSRR是写入1有效。高十六位写入1表示输出低电平,低十六位写入1表示输出高电平

    #include "led.h" #include "delay.h" #include "sys.h" int main(void) { unsigned char i = 0; delay_init(); //延时函数初始化 LED_Init(); //初始化与 LED 连接的硬件接口 GPIO_SetBits(GPIOA, GPIO_Pin_All);//关闭所有的灯 注意A2开发版用的共阳极 这里是置1 while(1) { for(i = 0;i<8;i++) { GPIOA->BSRR = 1<<(i+16); GPIOA->BSRR = 1<<(i-1); delay_ms(1000); } GPIOA->BSRR = 1<<7; } }
    Processed: 0.066, SQL: 8