ccs811除錯指南

2021-08-22 08:35:02 字數 1114 閱讀 2925

最近使用ccs811這一款整合環境引數測量晶元,由於ccs811本身的原因,導致除錯頗為不順利。現在已經除錯出來,把自己的經驗分享給大家。主控晶元stm32f103。

這個問題有可能是:

1.進行了某些誤操作,導致ccs811晶元本身跑飛,所以怎麼復位都不能讀取。解決辦法是對晶元復位,即int腳接地

2.iic通訊本身有問題,講iic通訊的讀和寫裡的延遲加大,至少5us

當上面的引數能讀取出來的時候,其實通訊本身已經沒有問題,但是由於ccs811內部整合的mcu需要一定的時間轉換模式,即當我們傳送測量轉換指令後,必須等待至少180us時間,才能夠對ccs811進行讀寫操作,假如提前讀寫便導致ccs811跑飛。

解決辦法,當傳送轉換指令時必須等待180us,**如下

//測量資料前必須開啟

iic_send_byte(0xf4);

delay_us(180); //必須等待180us以上才能夠收到應答

if(iic_wait_ack())

iic_stop();

nwake=1;

}

這個問題也是ccs811內部整合的mcu的鍋,當進入測量模式後,ccs811的iic通訊就變慢了,也就是說,iic通訊必須變慢,否則ccs811反應不過來。

解決辦法是調整iic讀寫速度,讀寫延遲至少50us。

**如下:

//測量資料前必須開啟

void iic_send_byte(u8 txd)

}

//讀1個位元組,ack=1時,傳送ack,ack=0,傳送nack

u8 iic_read_byte(unsigned char ack)

if (!ack)

iic_nack();//傳送nack

else

iic_ack(); //傳送ack

return receive;

}

按照器件手冊上的介紹都可以解決

除錯一塊板子真的很不容易,尤其是官方文件寫的奇奇怪怪的。一開始以為iic有問題,調了兩三天,後面才明白怎麼回事,如果有一塊邏輯分析儀應該不用這麼久吧。附上我寫的庫,祝大家能夠早日調出來。

CCS811氣體感測器

ccs811 是一款低功耗微型的mems氣體感測器,使用iic進行通訊,但與最常見的一些iic感測器相比,多了中斷 使能 復位這些功能和相應的管腳,而且程式控制涉及到模式和狀態切換,除錯過程不太順利而且網上可參考的資料較少。首先需要理清楚iic通行的流程,由於該器件的暫存器較豐富,包括有帶有該器件i...

idea 除錯指南 簡單的除錯指南

idea 除錯指南 恭喜你!您是少數意識到80 以上的錯誤都很簡單且易於修復的人之一。意識到這一點很重要,因為它可以節省大量時間。浪費時間進行不必要的更改,進而可能導致其他問題。程式設計是一種卑鄙的經歷。一種使人反思人為錯誤的經驗。這些錯誤的主要原因是語法,語法,語法。我們打錯字時往往不會注意到。花...

GMS程式除錯指南

獲得處 作者交流處 可以檢視出現同樣的問題 也有作者宣告 中表達錯誤的地方 作者提供了三個版本 python matlab c 下面討論c 版本與matlab版本 1 c version 1 vs2015新建乙個專案,新增src資料夾下面的demo.cpp 2 新增屬性表 opencv3以上即可 3...