目录
1.ADC介绍
配置cubemx
代码
2.IIC 通信
原理图
AT24C02
代码
i2C.c
主函数
1.ADC介绍
ADC 有多达 18 个转换通道,其中通道 0~通道 15 是外部通道,使用的 GPIO 引脚如表 所示。
ADC引脚 | GPIO引脚 | GPIO配置 | ADC引脚 | GPIO引脚 | GPIO配置 |
IN0 | PA0 | 模拟输入 | IN8 | PB0 | 模拟输入 |
IN1 | PA1 | 模拟输入 | IN9 | PB1 | 模拟输入 |
IN2 | PA2 | 模拟输入 | IN10 | PC0 | 模拟输入 |
IN3 | PA3 | 模拟输入 | IN11 | PC1 | 模拟输入 |
IN4 | PA4 | 模拟输入 | IN12 | PC2 | 模拟输入 |
IN5 | PA5 | 模拟输入 | IN13 | PC3 | 模拟输入 |
IN6 | PA6 | 模拟输入 | IN14 | PC4 | 模拟输入 |
IN7 | PA7 | 模拟输入 | IN15 | PC5 | 模拟输入 |
转换通道分为规则通道和注入通道两组。
规则通道由最多 16 个通道组成,按顺序转换
注入通道由最多 4 个通道组成,可插入转换
ADC 通道配置的一个主要参数是采样时间,采样时间通过采样周期数进行配置,
两者的关系是: ·142· 采样时间= (采样周期数 + 12.5) / fADCCLK
采样周期数的取值有:1.5、7.5、13.5、28.5、41.5、55.5、71.5 和 239.5 等。
当 fADCCLK取最大值 14MHz 时,内部温度传感器的采样周期数是:
采样周期数 = 17.1us ×14MHz − 12.5 = 226.9
配置cubemx
按以上配置好,完成。打开工程
代码
double getADC(ADC_HandleTypeDef *pin)
{
uint16_t adc=0;
HAL_ADC_Start(pin);
adc=HAL_ADC_GetValue(pin);
return adc*3.3/4096;
}
2.IIC 通信
原理图
查看产品手册原理图,i2c连接的是PB6与PB7引脚。
AT24C02
是 2kbit 串行 EEPROM,内部组织为 256×8bit,支持 16Byte 页写,写周期内部定时 (小于 5ms),2 线串行接口,可实现 8 个器件共用 1 个接口,工作电压为 2.7~5.5V。
AT24C02的设备地址是第一行
1010 A2 A1 A0
A2 A1 A0的值不确定,以此来控制不同的地址
R 1 读
W 0 写
AT24C02 的读写操作可在竞赛资源包中“i2c.h”和“i2c.c”的基础上修改实现
代码
i2C.c
主函数