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...