【单片机学习笔记】第十一届省赛复盘

失误一:函数数值要想对主程序有效,请使用指针

如此操作,EEPROM_read无效,无法把值读回主程序

建议以后还是用数组就好

失误二:强制类型转换优先级错误

// Bug 处1 - adc_proc

adc_parm = (unsigned char)veg_parm * 51;

// 等价于:((unsigned char)veg_parm) * 51

// veg_parm = 2.5 时:(unsigned char)2.5 = 2,2*51 = 102 ← 错误!

// 正确应为:2.5*51 = 127.5 → 127

// Bug 处2 - key_proc(EEPROM存储)

EEPROM_veg_parm = (unsigned char)veg_parm * 10;

// veg_parm = 2.5 时:(unsigned char)2.5 = 2,2*10 = 20 → 存入EEPROM

// 读出后:veg_parm = 20/10.0 = 2.0 ← 丢失小数!

修复:括号套住整个表达式:
adc_parm = (unsigned char)(veg_parm * 51.0); // main.c:94
EEPROM_veg_parm = (unsigned char)(veg_parm * 10.0); // main.c:132

相关推荐
学嵌入式的小杨同学2 小时前
STM32 进阶封神之路(二十七):MQTT 深度解析 —— 从协议原理到 OneNET 云平台接入(底层逻辑 + AT 指令开发)
stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb·嵌入式实时数据库
oi..2 小时前
Flag入门—修改数据包拿到答案
笔记·测试工具·安全·网络安全
报错小能手2 小时前
ios开发方向——Swift语言学习 为啥要学Swift?
学习·ios·swift
Xzq2105092 小时前
Mysql API学习
数据库·学习·mysql
马猴烧酒.2 小时前
【Java复习|Lambda表达式】Java Lambda 表达式、函数式接口与匿名内部类:从起源到原理
java·开发语言·ide·笔记·python·spring
DLGXY2 小时前
STM32(二十九)——读写、擦除FLASH
前端·stm32·嵌入式硬件
風清掦2 小时前
【江科大STM32学习笔记-09】USART串口协议 - 9.2 USART串口数据包
笔记·stm32·单片机·嵌入式硬件·学习
【 STM32开发 】2 小时前
【STM32 + CubeMX】低功耗 -- Standby 待机模式
单片机·嵌入式硬件
happymaker06262 小时前
web前端学习日记——DAY07(js交互编程)
前端·javascript·学习