[PIC®/AVR®/dsPIC®产品] 用Attiny84A作为i2c的slave端,i2c写时获取不到写入的值

[复制链接]
230|25
小岛西岸来信 发表于 2026-6-20 10:21 | 显示全部楼层
ATtiny84A 作为 I2C 从机写失败,优先检查:USI 硬件模块未正确初始化、从机地址配置错误、中断未开启、SDA/SCL 无上拉电阻。需启用 USI_START_COND_INT 中断,正确处理 USI overflow 中断,按从机时序缓存数据。无硬件上拉、时序错误、地址不匹配均会导致写值丢失。
小岛西岸来信 发表于 2026-6-20 10:21 | 显示全部楼层
ATtiny84A 作为 I2C 从机写失败,优先检查:USI 硬件模块未正确初始化、从机地址配置错误、中断未开启、SDA/SCL 无上拉电阻。需启用 USI_START_COND_INT 中断,正确处理 USI overflow 中断,按从机时序缓存数据。无硬件上拉、时序错误、地址不匹配均会导致写值丢失。
牛奶秋刀鱼 发表于 2026-7-30 16:03 | 显示全部楼层
多为 I2C 从机中断处理时序错误,未及时读取接收寄存器导致数据覆盖;未正确响应主机应答或停止信号。需在接收中断立刻读取 TWDR 缓存数据,应答时序匹配;配置上拉电阻,关闭多余中断抢占,增加数据缓冲区锁存,校验地址匹配标志,避免写入数据丢失。
huahuagg 发表于 2026-8-1 21:51 | 显示全部楼层
绝大多数收不到数据的问题都出在软件时序、引脚配置、ACK 应答、寄存器配置、时序匹配这几点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0