TSL2561 STM32驅動程式

2021-07-27 19:33:11 字數 3283 閱讀 4626

#define iic_scl_pin  gpio_pin_9

#define iic_sda_pin gpio_pin_8

#define gpio_iic gpiob

#define rcc_apb2periph_gpioiic rcc_apb2periph_gpiob

#define iic_sda_out() //輸入模式上拉下拉輸入模式 這段**要修改

#define iic_sda_in() //通用推挽輸出50mz 這個也要修改

#define sda_pin_out pbout(8)

#define scl_pin_out pbout(9)

#define sda_pin_in pbin(8)

一、從機位址

從給的資料手冊可以看出有乙個引腳addr sel用來設定晶元位址,當引腳接地時從機位址為0x29,浮空時從機位址0x39,接高電平時為0x49.在標頭檔案中採用巨集定義如下

二、tsl2561的寫/讀操作

tsl2561採用標準的iic匯流排介面,參照資料手冊容易得到2561的寫時序。時序圖,和**如下。

功能:寫命令和資料

*/void tsl2561_write(u8 command,u8 date)

在讀資料的時候,因為2561的adc的資料暫存器分為date0_low,date0_higt,date1_low,date1_higt,一共兩路每路16位。因此一次讀資料要有兩次的iic讀操作,並把date_higt移到高位。

功能:讀取乙個位元組的資料

*/u16 tsl2561_read(u8 command)

三、tsl的暫存器位址

每個暫存器位址和幾個常用的暫存器位址巨集定義如下。

timing暫存器主要設定積分時間

// tsl2561 registers

#define tsl2561_cmd 0x80

#define tsl2561_timing 0x81

#define tsl2561_reg_id 0x8a

#define tsl2561_data0_low 0x8c

#define tsl2561_data0_high 0x8d

#define tsl2561_data1_low 0x8e

#define tsl2561_data1_high 0x8f

四、command暫存器

command暫存器主要用來設定要配置的暫存器位址,其低四位就是上述暫存器位址表中的位址。

五、control 暫存器

control暫存器主要用來控制模組的上電和斷電。其值為0x03時上電為0x00時為斷電。

六、timing暫存器

timing暫存器主要用倆選擇增益和積分時間。說明和**如下。

//最後兩位設定積分時間

#define timing_13ms 0x00 //積分時間13.7毫秒

#define timing_101ms 0x01 //積分時間101毫秒

#define timing_402ms 0x02 //積分時間402毫秒

#define timing_gain_1x 0x10 //增益倍數與積分時間進行或運算

#define timing_gain_16x 0x00

七、綜合**

/*

功能:啟動tls模組

*/void tsl2561_poweron(void)

/*功能:關閉tsl模組

*/void tsl2561_powerdown(void)

/*功能:設定積分時間

引數:timing_13ms、timing_101ms、timing_402ms|

timing_gain_1x,timing_gain_16x選擇積分時間和增益,兩個或運算

*/void tsl2561_timingset(u8 time)

/*功能:初始化tsl2561模組

引數:*/

void tsl2561_init(u8 time_model)

/*功能:讀取整個位元組chanel0

引數:chanel

*/u16 tsl2561_chanel0read(void)

/*功能:讀取chanel1資料

引數:無

*/u16 tsl2561_chanel1read(void)

msp430和stm32 dht11驅動程式

最近使用msp430f5529讀取dht11的溫度和濕度資料,記錄下驅動程式,需要可移植。dht11模組是一塊溫濕度感測器模組,可以採集溫度和濕度資訊轉化為資料傳送出來,模組介紹如下 概述 dht11 是廣州奧松 生產的一款溼溫度一體化的數字感測器。該感測器包括乙個電阻式測溼元件和乙個 ntc 測溫...

linux spi驅動分析 基於STM32

linux kernel 版本2.6.30,spi驅動基於platform device,platform driver驅動模型來編寫.spi分為主從裝置,乙個主裝置下可心掛接多個從裝置,linux驅動中使用struct spi master結構來表示乙個主裝置,使用struct spi devic...

STM32 USB HID裝置驅動分析

stm32 usb hid裝置驅動分析 daniellee 2014 9 29 一 usb hid的裝置描述符分析 usb hid的裝置描述符用以下結構定義 device property device prop device property 這是裝載了多個函式指標的結構體,用於統一管理usb的多...