久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STC8A單片機硬件IIC驅動DS3231M芯片失敗的問題 [打印本頁]

作者: 624353765    時間: 2020-7-18 16:33
標題: STC8A單片機硬件IIC驅動DS3231M芯片失敗的問題
這個項目在開發板上運行是沒有問題的


使用的是DS3231的sop16封裝的芯片,某寶上買的模塊



功能測試通過后制作成小板



小板上用的是DS3231M的sop8芯片



調試了很多天STC8A單片機始終無法與DS3231M通訊,最多只能讀取一秒的時間就卡死的IIC應答上







原理圖



PCB正面



PCB反面



PCB上沒有給IIC上拉電阻,但是在單片機內部上拉的4.7k的電阻,單片機寄存器初始化情況


DS3231驅動代碼如下
  1. void Wait(){//I2C應答
  2. unsigned char a=0;
  3. while(!(I2CMSST&0x40)&&++a);
  4. I2CMSST&=~0x40;
  5. }
  6. void Start(){//發送START命令
  7. I2CMSCR=0x01;
  8. Wait();
  9. }
  10. void SendData(unsigned char dat){//發送數據
  11. I2CTXD=dat;
  12. I2CMSCR=0x02;
  13. Wait();
  14. }
  15. void RecvACK(){//接收ACK
  16. I2CMSCR=0x03;
  17. Wait();
  18. }
  19. void SendACK(){//設置ACK信號
  20. I2CMSST=0x00;
  21. I2CMSCR=0x05;
  22. Wait();
  23. }
  24. void SendNAK(){//設置NAK信號
  25. I2CMSST=0x01;
  26. I2CMSCR=0x05;
  27. Wait();
  28. }
  29. char RecvData(){//接收數據
  30. I2CMSCR=0x04;
  31. Wait();
  32. return I2CRXD;
  33. }
  34. void Stop(){//發送STOP命令
  35. I2CMSCR=0x06;
  36. Wait();
  37. }
  38. unsigned char DS3231_read(unsigned char site){//DS3231讀取
  39. P_SW2|=B(1000,0000);
  40. Start();
  41. SendData(0xD0);
  42. RecvACK();
  43. SendData(site);
  44. RecvACK();
  45. Start();
  46. SendData(0xD1);
  47. RecvACK();
  48. site=RecvData();
  49. SendNAK();
  50. Stop();
  51. P_SW2&=B(0111,1111);
  52. return site;
  53. }
  54. void DS3231_wirte(unsigned char site,unsigned char dat){//DS3231寫入
  55. P_SW2|=B(1000,0000);
  56. Start();
  57. SendData(0xD0);
  58. RecvACK();
  59. SendData(site);
  60. RecvACK();
  61. SendData(dat);
  62. RecvACK();
  63. Stop();
  64. P_SW2&=B(0111,1111);
  65. }
復制代碼
搞定可以送個小紅包

作者: angmall    時間: 2020-7-18 18:33
需要上拉電阻 4k7 在SDA和SCL  IIC接口

作者: Y_G_G    時間: 2020-7-19 13:34
在下載器那設定單片機的時鐘為6MHZ試一下
作者: lovexulu    時間: 2020-7-19 18:04
當年51芯片確實內部有上拉電阻,STC8也有,不過好像記得在數據手冊上看過需要打開上拉才可以,默認是高阻態。
作者: 民盛    時間: 2021-5-11 20:30
3231應該有上拉電阻。
作者: Lric_liao    時間: 2021-8-20 22:04
樓主解決了嗎,看樓主代碼上拉電阻是使能了的,問題出在哪呢。難道是內部上拉電阻只有4.1k造成的嗎。
作者: 最后的sixgods    時間: 2021-12-21 08:54
有沒有是因為驅動能力不足的原因
作者: lmn2005    時間: 2021-12-21 11:45
我一般用模擬IIC驅動,不用內部的IIC驅動。使用芯片內置IIC驅動需要設置什么寄存器吧。
作者: dsbk123    時間: 2025-1-19 20:17
Y_G_G 發表于 2020-7-19 13:34
在下載器那設定單片機的時鐘為6MHZ試一下

師傅在上,請受我一拜!
我也遇到同樣問題了,折騰了一個禮拜了沒結果。
按師傅的方法燒錄改為6M,直接成功。
作者: coody_sz    時間: 2025-1-19 23:11
dsbk123 發表于 2025-1-19 20:17
師傅在上,請受我一拜!
我也遇到同樣問題了,折騰了一個禮拜了沒結果。
按師傅的方法燒錄改為6M,直接 ...

那就是I2C速度太快了。STC8系列的MCU速度很快的,操作IO值需要一個時鐘。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久精品国产成人av | 亚洲天堂第一页 | 男女久久久 | 免费一级大片 | 亚洲黄色成人 | 黄色大片视频 | 亚洲激情成人 | 九九精品在线观看 | 国产一区在线看 | 午夜成人影片 | 久艹视频在线观看 | 欧美精品久久久久久 | 九九九精品视频 | 黄色在线播放 | 国产a√ | 欧美激情久久久 | 日韩av在线一区二区 | 天堂av网站 | 97视频在线播放 | 欧美日韩一区二区三区四区 | 老女人丨91丨九色 | 午夜你懂的| 天天操天 | av日韩在线播放 | 玖玖在线视频 | 日韩免费成人 | 国产一区在线看 | 欧洲精品一区二区 | 欧美精产国品一二三区 | 99这里有精品| 亚洲性天堂 | 一级免费看 | 伊人网在线播放 | 久久久久久久久国产 | 日本香蕉视频 | 午夜视频福利 | 国产精品少妇 | 日韩精品一二区 | 欧美偷拍精品 | 亚洲自拍偷拍视频 | 天天干天天爽 |