1.ADS115简介及引脚图
ADS1115是德州仪器推出的具有IIC接口的16位ADC转换器,超小型X2QFN或VSSOP 封装,低功耗(20uA),宽电压输入2.0V-5.5V,可编程数据转换速率8SPS-860SPS,四个单端输入或两个差分输入。可应用于,电池电压电流检测,低速便携式仪表以及温度测量系统中。


2.原理多为寄存器,作为新手不必理会,直接上IOC图
默认选择IIC3的独立模式
再加上USART1进行串口的数据读取,USART1默认选择(异步),在NVIC Setting勾选上串口中断即可
3.printf函数重定向
//在生成的usart.c中加入一下代码段
/* USER CODE BEGIN 0 */
#include <stdio.h>
extern UART_HandleTypeDef huart1; //声明串口
/* USER CODE END 0 */
//重定向函数
/* USER CODE BEGIN 1 */
/**
* 函数功能: 重定向c库函数printf到DEBUG_USARTx
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
/**
* 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
/* USER CODE END 1 */
4.生成对应的ads1115.c和.h文件
//i2c_ads1115.h
#ifndef __IIC_ADS1115_H
#define __IIC_ADS1115_H
#include "i2c.h"
#define ADS1115_WRITE_ADDRESS 0x90
#define ADS1115_READ_ADDRESS 0x91
//以下两个预处理作为配置寄存器预处理要更改其配在这里更改
//也可以添加新的预处理对不同通道的采集或者选取不同的采样速率等
#define CONFIG_REG_H ADS1115_REG_CONFIG_OS_START|\
ADS1115_REG_CONFIG_MUX_Diff_01|\
ADS1115_REG_CONFIG_PGA_4|\
ADS1115_REG_CONFIG_MODE_SINGLE
#define CONFIG_REG_L ADS1115_REG_CONFIG_DR_128|\
ADS1115_REG_CONFIG_COMP_MODE_TRADITIONAL|\
ADS1115_REG_CONFIG_COMP_POL_LOW|\
ADS1115_REG_CONFIG_COMP_LAT_NONLATCH|\
ADS1115_REG_CONFIG_COMP_QUE_DIS
/***************/