上传者: guoruibin123
|
上传时间: 2022-01-14 09:04:08
|
文件大小: 4.95MB
|
文件类型: ZIP
STM32单片机读写2通道带PGA16位ADC-AD7705软件例程源码,可以做为你的学习设计参考。
int main(void)
{
uint16_t adc1, adc2;
/*
由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。
启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。
系统时钟缺省配置为72MHz,如果需要更改,可以修改:
\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
中配置系统时钟的宏。
*/
bsp_Init();
PrintfLogo(); /* 打印例程Logo到串口1 */
bsp_InitTM7705(); /* 初始化配置TM7705 */
if (g_TM7705_OK == 0)
{
printf("未检测到 AD7705\r\n");
}
else
{
printf("已检测到 AD7705\r\n");
TM7705_CalibSelf(1); /* 自校准。执行时间较长,约180ms */
adc1 = TM7705_ReadAdc(1);
TM7705_CalibSelf(2); /* 自校准。执行时间较长,约180ms */
adc2 = TM7705_ReadAdc(2);
}
while (1)
{
bsp_Idle(); /* 空闲时执行的函数,比如喂狗. 在bsp.c中 */
TM7705_Scan2(); /* 扫描两个个ADC通道, 无等待的 */
{
/* 读取扫描结果 (结果定时读取即可) */
adc1 = TM7705_GetAdc1();
adc2 = TM7705_GetAdc2();
/* 打印采集数据 */
{
int volt1, volt2;
/* 计算实际电压值(近似估算的),如需准确,请进行校准 */
volt1 = (adc1 * 5000) / 65535;
volt2 = (adc2 * 5000) / 65535;
printf("CH1=%5d (%5dmV) CH2=%5d (%5dmV)\r", adc1, volt1, adc2, volt2);
}
}
}
}