windsoft77
发表于 2025-7-27 10:49:29
{:aini:}打卡
ydtaodrs
发表于 2025-7-27 22:04:42
加个vscode环境的教程就更好了,虽然我配置成功了{:4_165:}
怕热的大叔
发表于 2025-7-28 01:44:21
交作业,串口2 通信 演示modbus通信, 软件 照抄 梁工,演示 modbus写多寄存器和 读多寄存器 ,在写多寄存器的时候,把modbus接收寄存器的第一个数据 用数码管显示出来。 从机地址 0x10 , 0x10 为写多寄存器命令 0x03 为读多寄存器命令
后面为格式介绍,电脑发送命令格式和从机返回数据格式
/********************* modbus协议 *************************/
/***************************************************************************
写多寄存器
数据: 地址 功能码 寄存地址 寄存器个数写入字节数 写入数据 CRC16
偏移: 0 1 2 3 4 5 6 7~ 最后2字节
字节: 1 byte 1 byte 2 byte 2 byte 1byte 2*n byte 2 byte
addr 0x10 xxxx xxxx xx xx....xx xxxx
返回
数据: 地址 功能码 寄存地址 寄存器个数 CRC16
偏移: 0 1 2 3 4 5 6 7
字节: 1 byte 1 byte 2 byte 2 byte 2 byte
addr 0x10 xxxx xxxx xxxx
读多寄存器-
数据:站号(地址)功能码 寄存地址 寄存器个数CRC16
偏移: 0 1 2 3 4 5 6 7
字节: 1 byte1 byte 2 byte 2 byte 2 byte
addr 0x03 xxxx xxxx xxxx
返回
数据:站号(地址)功能码 读出字节数读出数据CRC16
偏移: 0 1 2 3~ 最后2字节
字节: 1 byte 1 byte 1byte 2*n byte2 byte
addr 0x03 xx xx....xx xxxx
返回错误代码
数据:站号(地址)错误码 CRC16
偏移: 0 1 最后2字节
字节: 1 byte 1 byte 2 byte
addr 0x93 xxxx
***************************************************************************/
ZRF197210
发表于 2025-7-28 19:23:12
学习中
thinkineye
发表于 2025-7-29 10:52:59
打卡学习
ZRF197210
发表于 2025-7-29 20:14:18
打卡学习
赫兹豆
发表于 2025-7-30 09:31:05
日常打卡学习
myxy2000
发表于 2025-7-30 10:09:00
学习中
白水大虾2016
发表于 2025-7-30 14:11:12
{:4_174:}
宋余余
发表于 2025-7-30 20:25:12
8051U单片机学习心得
第一集
首次见识到51单片机竟能实现视频播放、频谱分析等复杂任务,尤其是AI加持的手写计算器功能令人惊叹。实践中发现摄像头校准需精准调参,而PWM控制灯具亮度时需注意频率稳定性。烧写程序前务必备份原固件,曾因误操作导致芯片短暂失效;DMA传输数据时需严格匹配时序。
第二集
OLED屏幕对比度调节直接影响显示效果这一细节值得铭记。尝试用矩阵键盘设计简易密码锁时,深刻体会到防抖算法的重要性。
利用STC官方提供的IO配置工具批量设置端口模式,比手动编码效率高3倍以上。流水灯案例让我掌握多路GPIO并发控制的编程思路。
第三集
代码规范养成:新建工程时严格遵循“头文件先行”原则,避免跨文件编译错误;主函数模块化设计使逻辑更清晰。点亮首个LED的成功瞬间带来巨大成就感,但也暴露出初期对三极管驱动电路理解不足的问题。
采用分段注释法定位代码漏洞,例如在控制LED闪烁程序中,通过逐步屏蔽功能模块最终锁定定时器初始化错误。
第四集
自动化革新体验使用USB库实现免按键下载后,开发效率大幅提升。研究CDC与HID协议差异时,发现前者更适合数据传输场景。移植文件到新项目时,标准化的初始化函数封装显著减少重复劳动。
通过Python辅助转换数据类型,深入理解了寄存器操作本质。编写USB中断代码时,总开关机制有效防止了程序意外重启问题。
第五集
系统梳理了C语言运算符优先级规则,特别是在处理复合表达式时不再迷茫。利用串口助手验证printf格式字符串时,掌握了%x/%d等占位符的实际应用场景。
思维转变关键:从单纯追求语法正确转向注重运行效率,例如用位运算替代除法运算以优化性能。逻辑运算符章节的案例训练极大提升了条件判断的准确性。
第六集
设计按键检测程序时,理解了机械抖动带来的虚假触发问题,采用20ms软件延时配合状态机模型通过while语句实现松手检测占用cpu时间过长,还是建议优化代码。
使用ISP软件自带的延时计算器生成精确定时函数,确保不同晶振频率下的兼容性。变量状态跟踪法有效捕捉了瞬态信号变化过程。
第七集
告别阻塞式delay函数后,系统资源利用率提升显著。多层定时器嵌套实现的多任务调度。
制作报警按钮模块时,主动增加防误触机制;编写文档注释时同步更新版本历史记录。