1:登錄github網站搜BMP280,找到 BoschSensortec/BMP280_driver
2:gitclone或者download zip都可以,把驅動下載到本地,記得fork哦!
3:閱讀驅動的readme文件
4:readme前面分別是目錄、概要、和版本介紹,略過
5:我們關注的焦點也是重點是:傳感器初始化即:Initializing the sensor,以I2C為例講解如下:
咱們按照要求先定義一個結構體 struct bmp280_dev bmp;
這個結構體最重要的是實現其內部成員變量的函數實現,如bmp.read=user_i2c_read;這句代碼就要求我們用我們所選用的硬件CPU對應的API實現,這個user_i2c_read是個偽代碼,我們必須給替換掉!
那么如果用CPU對應的API實現bmp.read=user_i2c_read;bmp.write=user_i2c_write;bmp.delay_ms = user_delay_ms;呢?
第一步先把bmp280的驅動文件按照CPU的編程架構放到對應的文件夾中(關於驅動文件放置的位置還是很值得研究的,最好對makefile做個了解,然后再操作,一般8266我就直接放到user_main.c所在的文件夾了);
第二步把需要初始化的結構體代碼拷貝到main.c(當然也有可能是其他的名字,總之是主C文件就可以了)里面,然后找到struct bmp280_dev bmp,找出bmp280_dev的定義代碼,如果你用IAR的話就直接go to definition就可以找到了。你會發現bmp.read=user_i2c_read;bmp.write=user_i2c_write;bmp.delay_ms = user_delay_ms;要求實現的函數的形式,我們必須按照定義的形式實現函數。
6:下面的工作就是sensor configuration:
先聲明結構體變量 struct bmp280_config bmp;
然后在確定設置參數之前首先讀傳感器的默認設置,然后再根據我們自己的要求寫入設置參數
7:readout部分參考實例實現