
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
可实现功能本代码基于51单片机(12MHz晶振),可实现以下核心功能,所有功能均通过代码逻辑闭环实现,可直接编译运行(修正语法错误后):4x4矩阵键盘扫描:识别16个按键(数字0~9,具备按键消抖功能,避免误触发。4位共阴数码管动态显示:支持在4个指定位置显示数字0~9,可根据程序状态显示输入的密码、验证结果,显示稳定无闪烁。密码输入与验证:支持分步输入4个数字密码(num1~num4),按下(按
820宏定义的核心作用是“替换”,把常用的常量、I/O口用简单的名字代替,方便后续修改(比如想把LED改到P1口,只需修改LED_PORT即可,无需逐行改代码)。:将P0口定义为LED_PORT,后续操作LED_PORT就等同于操作P0口(8个LED一端接P0口,另一端接地,共阳极LED:高电平灭、低电平亮)。:定义LED的数量为8个(对应P0口8个引脚,P0.0~P0.7分别控制1个LED)。:
只要倒计时≤3每500ms黄灯引脚翻转一次(亮→灭→亮→灭)对应方向黄灯开始闪烁另外一方向一直保持红灯。
先给第 1 行(P17)输出低电平,剩下的 P16、P15、P14 全部输出高电平,读取 4 根列线的电平:按键 5 在 P16 行,此时 P16 是高电平,就算按键按下,列线也不会被拉低,所以 4 根列线全是高电平,判定这一行没有按键按下。逐列扫描和逐行扫描是完全对称的逻辑:我们把列线配置为输出模式,行线配置为上拉输入模式,一次只拉低一根列线,其余列线输出高电平,然后读取每一行的电平,通过 “低
本手册按STM32核心外设功能分类,以,搭配极简可复用实战案例,无需钻研晦涩术语,新手亦可快速上手实操,所有代码均适配CubeMX自动初始化框架,粘贴即可运行。
重点讲解常用寄存器结构体(含核心功能、关键寄存器、实操代码示例),每个寄存器操作均标注对应HAL库函数,兼顾实用性和简洁性。可能对新手看有一点难度,但可以慢慢的看,一点一点的,等你全部看懂后就很厉害了。
原型功能:和strchr()正好相反,找字符c在src字符串中“最后一次”出现的位置,同样会包含字符串末尾的'\0'。示例代码int main()char * pos;// 查找字符'o'最后一次出现的位置if(pos!= NULL)printf("字符最后一次出现的位置为第%d个(从0开始),内存地址为:0x%x\n", pos-str, pos);elseprintf("未找到指定字符\n")
作用:将代码中重复使用的固定值,用一个标识符(常量名)代替,便于修改和阅读(常量名建议全大写,符合编码规范)。格式:#define 常量名 常量值50// 定义常量,代表学生人数为50int main()// 使用常量,预处理后会替换为50printf("班级总人数:%d\n", STUDENT_NUM);return 0;运行结果:班级总人数:50(修改人数时,只需改#define后的50,无需







