收發緩衝區 g_pciic_buffer有bug,會造成記憶體出錯。
解決辦法是:
1、接收:
先使用陣列儲存資料,完成後再複製到接收緩衝區
case master_receive:
if (g_uiic_pt>0)
然後:if(g_uiic_pt != 0)
2、傳送:
將要傳送的資料儲存到傳送緩衝陣列,再在iic_ist裡面傳送
g_piicreg->iicds = g_pcsebuf[g_uiic_pt];
傳送模式完成避開了g_pciic_buffer指標
這樣修改之後,資料讀寫就完全正確了,不會再出現記憶體錯誤了,但是還有一點我還沒有搞明白,g_pciic_buffer指標為什麼 會出錯,可能是我的水平問題,看不出在**出錯,有知道的請賜教了,多謝多謝!
i2c通訊的詳細講解 I2C匯流排簡介
本文介紹了內部積體電路 aka i2c 序列通訊協議的基本特性和突出優點。元件之間的通訊 通訊協議 毫無疑問,電子系統的共同特徵是需要在兩個或三個或十個單獨的元件之間共享資訊。工程師已經開發出許多標準協議,可以幫助不同的晶元成功通訊 當您在微控制器或數字訊號處理器的功能列表中 通訊 下面對縮略語時,...
linux下的I2C驅動記錄
現在做的是rk平台的i2c驅動,不是說linux每個外設對應乙個裝置檔案嗎?可是找了一下一直沒找到,今天特別搞了一下。i2c裝置是註冊為platform平台驅動的。下面是我用adb命令檢視的 linux的裝置檔案不一定只在dev 這個目錄下面,像sys 目錄下面也會有一些裝置檔案的 mid下面的i2...
I2C的匯流排電容
1 匯流排電容cb是一條匯流排線路連線和管腳的總,單位是pf。由於規定了上公升時間,這個電容限制了上拉電阻rp 的最大值,而電源電壓限制了上拉電阻rp 的最小值,輸出級在volmax 0.4v 時指定的最小下拉電流是3ma。如果匯流排線路的電容負載公升高,位速率將逐漸下降,匯流排的電容負載是400p...