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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2508|回復: 0
打印 上一主題 下一主題
收起左側

I2C調試記錄(寄存器版本)_STM8L151

[復制鏈接]
跳轉到指定樓層
樓主
ID:600674 發表于 2019-8-16 11:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近調STM8的I2C簡直是爽呆呆,一直不成功,收不到從機寄存器的數據,最后終于完成,究其原因可以總結為以下幾個方面:
1、I2C配置問題,一定要注意配置問題,特別的是I2C的時鐘,SCL時鐘的高低電平占空比,如果采用100kHz,占空比為1:1,若為400KHz,高低占空比為1:2,配置好之后直接應答使能,方便后面通訊過程。注意配置好之后,程序運行到這里SCL和SDA就會置1,并且能用電壓表和示波器查看電壓和波形;一定要去ST官網下載資料查看寄存器的配置,否則容易出錯。
2、I2C讀數據通訊過程一定是包含這樣幾個過程:起始位,判斷CR1_SB,發送從機地址(7bit+1bit寫操作),判斷ADDR,讀SR3清寄存器,發數據,判斷BTF是否成功發送,重復起始,再讀SB,讀操作,ADDR,SR3,判斷RXNE,保存接收數據,最后結束位和重新應答使能;適當的加nop延遲,I2C來不及應答,注意不要多操作也不要少操作,嚴格按照流程來,不然就會出錯。只要寫能成功,讀肯定沒問題。
3、通過I/O口實現模擬I2C通訊,若實在是I2C硬件功能調不通,可先用對應的I/O模擬出I2C的通訊過程。編程也是按照I2C通訊協議一步步走,不要漏掉和多出什么,否則容易出錯。基本過程如下:1.配置系統時鐘(關鍵,時鐘決定了I2C通訊的速率);2.配置延時程序(這一點必須配置好,否者無法通訊成功);3.I2C初始化程序;4.起始信號程序;5.結束信號程序;6.接收從機應答程序(給從機一個應答位,保證接收到應答才能進行下一步操作);7.主機發送ack和Nack程序;8.檢測是否接收到應答(對應第6步,保證I2C數據傳輸正確,也可不要)9.寫一個字節程序;10.讀一個字節程序。
將所有的這些程序編寫好之后就能按照I2C通訊過程進行調用和編寫,網上程序很多可以對著看,就不貼源代碼了。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产色婷婷久久99精品91 | a在线免费观看 | 91av入口| 不卡一二三区 | 成人亚洲| 成人av一区二区三区 | 91精品国产91综合久久蜜臀 | 美女视频h | 日韩成人久久 | 亚洲精久 | 久久久不卡网国产精品一区 | 国产中文视频 | 性福视频在线观看 | 国产在线小视频 | 欧美日韩中文字幕在线 | 中文字幕一区二区三区不卡 | 在线一区视频 | 婷婷中文字幕 | 中文字幕在线看第二 | 亚洲视频免费一区 | 国产黑丝av| 久久婷婷麻豆国产91天堂 | 久久成人一区 | 国产伦精品一区二区三区照片91 | 国产精品久久久久久久久久久久久 | 久久久无码精品亚洲日韩按摩 | av黄色在线 | 色伊人久久 | 国产一区二区三区视频 | 91久久久久| 日韩视频一级 | 亚洲欧美一区二区三区情侣bbw | 日韩在线免费视频 | 国产美女一区二区三区 | 国产精品久久久久久久岛一牛影视 | 成人在线观看免费 | 久久国产欧美日韩精品 | 欧美专区在线视频 | 久久久夜色精品亚洲 | 一区二区三区四区视频 | julia中文字幕久久一区二区 |