STM32下DHTxx傳器的驅動

2021-06-02 08:59:45 字數 1151 閱讀 5667

dht11和dht10感測器,主要採集溫濕度,基於本人的i2c模擬庫實現。

主要**如下:

#ifndef _sh10_drv_h_

#define _sh10_drv_h_

#include "stm32f10x_lib.h"

void sh_i2cinit(void);

u8 sh_writereg(u8 val);

u8 sh_readreg(vu8 *val);

u8 sh_readtemprature(float *val);

u8 sh_readhumility(float *val);

u8 sh_readtempandhum(float *t, float *h);

#endif //_sh10_drv_h_

#include "hky_sht10.h"

#undef pin_scl

#define pin_scl gpio_pin_6

#undef pin_sda

#define pin_sda gpio_pin_7

#include "hky_i2c.h"

#define sh_cmd_temp 0x03

#define sh_cmd_hum 0x05

#define sh_cmd_rd_reg 0x07

#define sh_cmd_wr_reg 0x06

#define sh_cmd_rst 0x1e

void sh_i2cinit()

}u8 sh_writereg(u8 val)

u8 sh_readreg(vu8 *val)

u8 sh_readtempraturereg(u32 *val)

u8 sh_readtemprature(float *val)

u8 sh_readhumilityreg(u32 *val)

u8 sh_readhumility(float *val)

u8 sh_readtempandhum(float *t, float *h)

*h = rh_linear;

return 0;

}

stm32 卡到b 這裡 STM32的儲存器結構

看完這篇文章你會有什麼收穫?1.理解什麼是記憶體和io統一編址 2.知道stm32的4g記憶體是如何使用的 3.理解變數和記憶體的關係 4.理解對齊編址的必要性 下面進入正文 1.因為記憶體和io統一編址,所以你可以直接操控暫存器來讓io口工作,這是由硬體決定的。編址的工作由位址線來完成,stm32...

stm32關定時器 STM32定時器TIM3程式

include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...

STM32儲存器對映

stm32儲存器對映 1 cortex m3儲存器對映cm3的位址空間有4g,但它只對這4g空間作了預先的定義,把4g空間分成8個塊,每塊大小為512m,並指出各段該分給哪些裝置。具體的實現由晶元廠商決定,廠商可以設計出具有自己特色的產品。下圖是cm3的儲存器對映圖 來自cm3權威指南 1.1 st...