stm32学习随笔23.11.6_1

凌晨

按键控制LED灯显示二进制状态,随笔记录视频B站:BV1gN411G7Nm

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "LED.h"
#include "KEY.h"

//按键控制LED灯显示二进制状态
int main(void)
{
    LED_Init();
    Key_Init();
    int16_t KeyNum,i=0;
    while(1)
    {
        KeyNum=Key_GetNum();
        if(KeyNum==1)
        {
            i++;
            if(i>0xff){i=0xff;}
        }
        if(KeyNum==2)
        {
            i--;
            if(i<=0x00){i=0x00;}
        }        

  LED_binary(i);
    }
}
LED.c

内容与上篇一致,但新增此次调用函数

/*
*brief    简  介:LED灯显示二进制数
*param    参  数:x值为16进制数0-255直接
*retval   返回值:无
*/
void LED_binary(int16_t x)
{
    if(x<0x0000 || x>0x00ff)
    {
        x=0;
    }
    int8_t i;
    for(i=0;i<8;i++)
    {
        GPIO_WriteBit(GPIOA,(uint16_t)0x0001<<i,(x & (1 << i)) ? Bit_RESET : Bit_SET );
    }
}
KEY.c

与上篇一致

PS附注:为了验证按键数据越界0xFF后是否成功阻拦,手是真的按酸了

posted @ 2023-11-06 01:19  上够了逼班的老王  阅读(26)  评论(0)    收藏  举报