C/C++
文章平均质量分 68
fredricen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
工业PID算法在温控器的应用与参数说明
PID算法作为工业控制中的经典方法,具有结构简单、应用广泛的特点。其数学模型包含连续型和离散型两种形式,通过比例、积分、微分三个环节共同作用。实际应用中多采用比例带(δₚ)、积分时间(Tᵢ)、微分时间(T_d)等参数进行调整。离散型模型通过采样周期Δt实现误差的累计和差分计算,输出量由当前误差、历史误差积分及误差变化率共同决定。该算法体现了反馈控制的核心思想,是解决一般控制问题的有效工具。原创 2025-06-13 16:46:11 · 1062 阅读 · 0 评论 -
Error: L6200E: Symbol __stdout multiply defined 解决方案
摘要:在Keil嵌入式开发中,使用标准I/O函数(如printf/scanf)会导致与重定向的串口打印冲突。解决方法有两种:1)使用条件编译指令(如#define USE_PC_STDIO)选择性编译涉及标准I/O的代码;2)若确认不需要相关功能,可直接删除使用标准I/O的代码。这种方法既保留了代码的PC调试能力,又避免了嵌入式环境下的编译冲突。原创 2025-06-11 09:05:53 · 593 阅读 · 0 评论 -
C语言中清空缓存区到底写到哪里比较好
这篇文章讨论了C语言中scanf函数处理输入缓冲区时可能出现的问题。重点分析了%c格式符的特殊性:它会读取缓冲区中的空格、回车等字符,而%d则会跳过这些分隔符。文章通过一个报警程序示例展示了该问题导致循环异常执行的现象,并提出了两种解决方案:1)使用额外变量接收无用字符;2)清空输入缓冲区。最后指出方法二更为通用,但实现位置需要特别注意。文章还提到了使用getchar循环清空缓冲区的具体实现方式。原创 2025-05-27 11:09:34 · 945 阅读 · 0 评论 -
使用正点原子STM32F407ZGT6探索者点亮LED数码管TM1650
我拿到的TM1650数码管是共阴极的,默认接地,只有拉高电平时,对应的码段才会点亮。通讯协议是IIC协议。IIC协议时序图如下:起始信号:在 SCL 为高电平期间, SDA 从高电平变成低电平, 表示起始信号;停止信号:在 SCL 为高电平期间, SDA 从低电平变成高电平, 表示停止信号;写 “1”:保持 SDA 为 “1”,SCL 从 “0” 跳到 “1”,再从 “1” 跳到 “0”;写 “0”:保持 SDA 为 “0”,SCL 从 “0” 跳到 “1”,再从 “1” 跳到 “0”;原创 2025-04-25 17:30:13 · 1193 阅读 · 0 评论 -
printf打印颜色
控制字符的通用格式如下:Esc[{attr1};…;{attrn}m其中:Esc 是转义字符, 其值为"\033";[ 是常量的左中括号;{attr1};…{attrn} 是若干属性, 通常是由一个有特定意义的数字代替, 每个属性之间用分号分隔;m 就是字面常量字符m;属性列表如下:通用格式控制:0 重置所有属性1 高亮/加粗2 暗淡4 下划线5 闪烁7 反转8 隐藏前景色:30 黑色31 红色32 绿色33 黄色34 蓝色35 品红36 青色37转载 2021-02-03 09:19:47 · 790 阅读 · 0 评论 -
scanf函数安全性分析
int scanf(char*,...)是其函数声明。其中只要求第一个参数是char*,即字符串即可,而对于其他参数则没有限制类型和个数,这其中有安全风险。举个例子:scanf(“%d %c”,&i,&ch);如果从键盘上输入的数据是:30 A?则变量ch的值是空格字符而不是字符‘A’。这种错误很隐蔽,因此建议读者尽量不要使用scanf函数从键盘上输入包含字符数据在内的一组不同类型的数据值,以转载 2013-08-14 22:07:15 · 1194 阅读 · 0 评论
分享