|
|
BH45B1225 是一款高性價比的 24 位 Delta-Sigma ADC,集成可編程增益放大器(PGA,1~128 倍)、12 位 DAC、溫度傳感器和多路輸入通道(4 路單端 / 2 路差分)。支持內(nèi)部 1.25V 基準(zhǔn)電壓,通過 I2C 接口配置,數(shù)據(jù)速率可調(diào)(5~1600Hz),適用于精密測量、傳感器采集、工業(yè)控制等場景。
開源地址:https://github.com/createskyblue/BH45B1225
論壇下載(不保證是最新的版本):
BH45B1225-main.7z
(3.22 MB, 下載次數(shù): 0)
2026-2-3 03:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
cn.png (451.07 KB, 下載次數(shù): 0)
下載附件
2026-2-1 16:24 上傳
移植
實現(xiàn) 3 個函數(shù):
- // 寫 - data 格式: [寄存器地址][數(shù)據(jù)...]
- int bh45b1225_i2c_write(uint8_t dev_addr, const uint8_t *data, uint16_t len) {
- return HAL_I2C_Master_Transmit(&hi2c1, dev_addr, data, len, 1000);
- }
- // 讀
- int bh45b1225_i2c_read(uint8_t dev_addr, uint8_t reg, uint8_t *data, uint16_t len) {
- if (HAL_I2C_Master_Transmit(&hi2c1, dev_addr, ®, 1, 1000) != HAL_OK) return -1;
- return HAL_I2C_Master_Receive(&hi2c1, dev_addr, data, len, 1000);
- }
- // 延時
- void bh45b1225_delay_ms(uint32_t ms) {
- HAL_Delay(ms);
- }
復(fù)制代碼
使用
- bh45b1225_dev_t sensor;
- // 初始化(8位地址,如 0xD0)
- bh45b1225_init(&sensor, 0xD0, bh45b1225_i2c_write, bh45b1225_i2c_read, bh45b1225_delay_ms);
- // 配置差分輸入 (AN0-AN1)
- bh45b1225_set_input_channel(&sensor, BH45B1225_IN1_AN0, BH45B1225_IN2_AN1);
- bh45b1225_reset_adc_filter(&sensor);
- bh45b1225_start_conversion(&sensor);
- // 讀取
- while (1) {
- bool complete;
- if (bh45b1225_check_eoc(&sensor, &complete) == 0 && complete) {
- int32_t raw;
- bh45b1225_read_data(&sensor, &raw);
- bh45b1225_clear_eoc(&sensor);
- float voltage = bh45b1225_code_to_voltage(raw, 1.241f, 1.0f);
- }
- }
復(fù)制代碼 API基礎(chǔ)函數(shù)函數(shù) | 功能 | | bh45b1225_init() | 初始化設(shè)備 | | bh45b1225_set_vcm() | 使能/除能 VCM | | bh45b1225_set_vref_source() | 設(shè)置 ADC 參考電壓源 (內(nèi)部/外部) | 輸入與增益配置函數(shù) | 功能 | | bh45b1225_set_input_channel() | 配置輸入通道 (IN1/IN2) | | bh45b1225_set_inx_polarity() | 通過 INX 位交換輸入極性 | | bh45b1225_set_pga_gain() | 設(shè)置 PGA 總增益 (1~128) | 時鐘與振蕩器函數(shù) | 功能 | | bh45b1225_enable_hirc() | 使能 HIRC 內(nèi)部振蕩器 | | bh45b1225_check_hirc_stable() | 檢查 HIRC 振蕩器是否穩(wěn)定 | ADC 配置函數(shù) | 功能 | | bh45b1225_set_data_rate() | 設(shè)置 ADC 輸出數(shù)據(jù)速率 (5~1600Hz) | | bh45b1225_set_adc_mode() | 設(shè)置 ADC 工作模式 (正常/休眠/掉電) | | bh45b1225_set_vref_buffer() | 使能/除能參考電壓緩存 | ADC 操作函數(shù) | 功能 | | bh45b1225_reset_adc_filter() | 復(fù)位 ADC 濾波器 | | bh45b1225_set_data_latch() | 使能/除能數(shù)據(jù)鎖存 | | bh45b1225_start_conversion() | 啟動 ADC 轉(zhuǎn)換 | | bh45b1225_check_eoc() | 檢查轉(zhuǎn)換是否完成 | | bh45b1225_read_data() | 讀取 24 位 ADC 結(jié)果 | | bh45b1225_clear_eoc() | 清除 EOC 標(biāo)志 | DAC 操作函數(shù) | 功能 | | bh45b1225_set_dac_enable() | 使能/除能 DAC | | bh45b1225_set_dac_vref() | 設(shè)置 DAC 參考電壓源 (AVDD/VCM) | | bh45b1225_set_dac_output() | 設(shè)置 DAC 輸出值 (12 位, 0-4095) | 工具函函數(shù) | 功能 | | bh45b1225_code_to_voltage() | 將 ADC 碼轉(zhuǎn)換為電壓 | 高級配置(謹(jǐn)慎使用函數(shù) | 功能 | | bh45b1225_set_pwrc_opt() | 設(shè)置 PWRC 優(yōu)化位 | | bh45b1225_set_adcte() | 設(shè)置 ADC 測試配置寄存器 | | bh45b1225_set_filter_mode() | 設(shè)置 ADC 濾波器模式 (FLMS) | | bh45b1225_set_osr() | 設(shè)置 ADC 過采樣率 (OSR) | | bh45b1225_set_clock_div() | 設(shè)置 ADC 時鐘分頻 |
PixPin_2026-02-01_16-32-14.png (195.88 KB, 下載次數(shù): 0)
下載附件
2026-2-1 16:32 上傳
PixPin_2026-02-01_20-37-09.png (1.03 MB, 下載次數(shù): 0)
下載附件
2026-2-1 20:37 上傳
|
評分
-
查看全部評分
|