|
本帖最后由 zzsczz 于 2016-5-29 14:13 编辑
atmega16A 作为 spi master。通过 IO口 点亮 595驱动的 7段 LED,显示 发送和 接收的 数据,2个按钮 ,一个触发发送SPI数据并把数据+2,另一个增加数据值(+1但不发送)。
atmega328p作为 spi slave。 SPI传输中断中 采样AD3 ,在 SS 下降沿 (既 SPI使能但还没有传输数据时)更新SPDR。
2个AVR 单片机 采用 硬件SPI外设 连接 。
仿真结果很好, spi master 可以显示 slave传回的数据,并显示 发送的数据。
下到真实硬件里面,spi master 显示 的 数据 混乱,表现为 : 在 应该显示 SPI SLAVE 发送数据的2个 7SEG管 , slave传回的AD采样数据 和 MASTER发送 的数据 交替显示,即SPI MASTER 触发SPI传输,若显示了AD采样数据,下次触发触发SPI传输则显本次SPI master 发送的数据 ( 可能 SLAVE 更新SPDR 失败,下次SPI传输 当前 MASTER 发送的数据 )。
找了3周 不知道原因 ,请大伙看看 有啥问题。
环境 : PROTEUS 7.10 , AVR STUDIO 4.17
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|