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后是否成功阻拦,手是真的按酸了
浙公网安备 33010602011771号