RT Thread系統下添加SHT20驅動

製作完自己板子的BSP後使用scons --dist命令生成獨立的工程,複製一份出來作爲新的工程。

我的上一篇文章有講怎麼生成自己的BSP,地址在這裏https://blog.csdn.net/qq_25186745/article/details/103808138

SHT20時IIC總線驅動,所以先要添加IIC驅動到menuconfig目錄中。

先打開復制好的工程目錄,打開Kconfig文件,文件目錄

在文件裏添加I2C的menu,這裏可以參考BSP里正點原子的stm32f103-atk-warshipv3裏的Kconfig文件目錄。

修改後如圖。

然後啓動env進入menuconfig,然後在Hardware Drivers Config->On-chip Peripheral Drivers裏就能看到有了Enable I2C1 BUS這個選項了

進入Enable I2C1 BUS裏面後要選擇SCL和SDA引腳編號,具體的引腳編號可以在stm32f103-my-bsp\libraries\HAL_Drivers下的drv_gpio.c文件中查看。我的板子上SDA引腳接的是單片機的PD0,SCL腳接的是單片機的PD1,所以這裏填48和49。

我們把這個打開,然後進入RT-Thread online packages--->peripheral libraries and drivers--->sht20...........

開啓這個選項,其中每個功能配置如下

  • sht2x: digital humidity and temperature sensor sht2x driver library:選擇使用 sht20軟件包;
  • Enable average filter by software:開啓採集溫溼度軟件平均數濾波器功能;
  • The number of averaging:取平均數的採樣數目;
  • Peroid of sampling data(unit ms):採集數據的週期,時間單位 ms
  • Version:配置軟件包版本,默認最新版本。

保存退出menuconfig後使用pkgs --update命令更新驅動包到BSP中。

然後使用scons --target=mdk5命令更新工程

然後打開工程可以看到在工程中已經添加上了sht20的驅動文件。

然後在main函數的初始化中加入sht20的初始化函數,加上sht20的頭文件,編譯下載。

然後打開PuTTY,輸入ps命令可以看到已經有sht20的任務了。

然後輸入sht20 probe i2c1來探測傳感器,

sht20的文檔在這裏http://packages.rt-thread.org/detail.html?package=sht2x

如果沒有返回值代表正常,否則探測失敗。

然後輸入sht20 read讀取sht20的溫溼度。

返回溫度是112,溼度-6,這肯定不正常啊。難道移值失敗了嗎?

仔細想想IIC兩條線用的是PD0和PD1,而STM32F103RC芯片要使用這兩個腳的話和其他引腳不一樣,要多一個初始化,不知道drv_gpio.c裏面有沒有加這句初始化,既然不知道那就加上再說。

然後在編譯、下載。這下就正常了,SHT20驅動移值完畢。

看來drv_gpio.c裏面沒有將PD0和PD1作爲普通的GPIO口,所以以後要用到PD0和PD1的話不要忘了加上__HAL_AFIO_REMAP_PD01_ENABLE();

移值完成的工程文件

https://download.csdn.net/download/qq_25186745/12079797

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章