打印
[51单片机]

C8051F020 SPI通信 SPIF位不能置1导致单片机死机

[复制链接]
959|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LSLDAY|  楼主 | 2016-5-5 18:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
LSLDAY|  楼主 | 2016-5-5 18:07 | 只看该作者
各位同学有遇到的过的吗

使用特权

评论回复
板凳
LSLDAY|  楼主 | 2016-5-5 18:11 | 只看该作者
还有一点,,,并不是每次都死机,而是单片机运行一段时间后有时会出现死机情况,用的硬件仿真器全速跟踪调试,出现死机时,停止调试,程序箭头指向  while (SPIF == 0){;}   这里,每次死机都这么个情况

使用特权

评论回复
地板
lyjian| | 2016-5-5 21:19 | 只看该作者
直接去查找SPIF不能置位的原因,没什么好纠结的

使用特权

评论回复
5
yhn1973| | 2016-5-6 14:29 | 只看该作者
清SPIF标记不要用SPIF=0,要用SPI0CN&=0x0f

使用特权

评论回复
6
LSLDAY|  楼主 | 2016-5-19 09:51 | 只看该作者
lyjian 发表于 2016-5-5 21:19
直接去查找SPIF不能置位的原因,没什么好纠结的

找到了不是SPIF不能置位,是调用SPI读写的函数数有问题,

QQ截图20160519095037.png (27.67 KB )

QQ截图20160519095037.png

使用特权

评论回复
7
LSLDAY|  楼主 | 2016-5-19 09:52 | 只看该作者
yhn1973 发表于 2016-5-6 14:29
清SPIF标记不要用SPIF=0,要用SPI0CN&=0x0f

这样写有什么好处吗?

使用特权

评论回复
8
yhn1973| | 2016-5-19 10:29 | 只看该作者
可能会导致SPI0CN其他标记置1,这样不清0的话SPI会不管用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

288

帖子

5

粉丝