毕业设计--2020-1-13 DS3231秒出问题(秒读数全部是偶数的原因)
生活随笔
收集整理的這篇文章主要介紹了
毕业设计--2020-1-13 DS3231秒出问题(秒读数全部是偶数的原因)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天測試了DS3231 這個傳感器,這個傳感器的其他的特點不在贅述,資料很齊全。 主要是和大家分享一下我遇到的問題。
先說明原因??? 缺少了一個 ACK位?? SCL時鐘的第一個時鐘給了 ACK 之后? 所有回讀的bit 都錯位了。 在 IIC 的讀時序里面 少了一個ACK
?
測試的時候發現打印的數據里面的 秒數據兩秒一跳? 串口打印回來的數據是這樣的
已知我的串口打印的時間間隔是500ms,我很容易的就猜出是 bit 錯位了,然后就開始找bit 錯位的原因? 查找代碼部分?
第一步是驗證? 確實是bit 發生了錯位?? 我直接將數據右移一位? 發現對得上了 , 數據全部是偶數,然后 時間間隔是兩秒鐘
接下來是找問題? 一開始懷疑是? BCD 轉 HEX 部分出問題? 所以我在最底層的bit 讀取部分加了 打印, 打印出每一個 bit
發現在讀取的時候就發生了bit的錯位,這樣基本就可以 確定是IIC的底層部分出了問題
讀數據手冊發現 了這個ACK 和我的代碼里面以前寫過的不是很一樣, 加上ACK
解決了問題
問題就是因為我缺少了一個 ACK位?? SCL時鐘的第一個時鐘給了 ACK 之后? 所有回讀的bit 都錯位了。
?
?
?
總結
以上是生活随笔為你收集整理的毕业设计--2020-1-13 DS3231秒出问题(秒读数全部是偶数的原因)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库实验—ER模型
- 下一篇: MFC中通过Tooltip类来实现悬浮鼠