找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3130|回复: 0
收起左侧

CH579M-R1开发板+A/D采集与传感器使用(1)

[复制链接]
ID:776997 发表于 2020-9-20 09:08 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2020-9-20 09:09 编辑

CH579M 具有14个通道的12ADC模数转换器,并支持14通道触摸按键。此外,还有一个内部电池检测通道和一个内部温度传感器检测通道。其中的电池检测通道适用于低功耗产品的电源管理和报警,而温度传感器检测通道也是一种维护低功耗产品可靠工作的主要手段。
由于所用的是12ADC模数转换器,故其采样的数值范围是0~4095
通过对例程的验证,其运行结果如图1所示。
1.jpg
1 运行结果


由运行结果可知,它能够读取到ChipID、指定单通道的采样值、指定差分通道的采样值、指定触摸按键通道的采样值及使用中断方式进行采样。
为更好地感知外部世界的变化,在实际应用中有多种传感器被广泛使用。而传感器主要有3类,即模拟信号型、数字信号型及脉冲信号型。其中数字信号型的特点是直接获得数字结果,无需进行数值标度变换;而模拟信号型,则获得的是模拟信号需要进行数值变换及线性处理等。
在按图2所示,外接电位器的情况下可观察信号变换的结果。

2.jpg
2 电位器模拟信号源

3.jpg

图3 电位器提供模拟信号

4.jpg

图4 PA0通道9采样


5.jpg
图5 PA5通道1采样

数据采集主程序:
  1. int main()
  2. {
  3.          UINT8 i;
  4.          signed short  RoughCalib_Value=0;
  5.          DebugInit();
  6.          PRINT( "\n2.Single channel sampling...\n");
  7.          GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);   //GPIO_Pin_0
  8.          ADC_ExtSingleChSampInit( SampleFreq_3_2, ADC_PGA_0 );
  9.          GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
  10.          RoughCalib_Value = ADC_DataCalib_Rough();
  11.          PRINT("=%d \n", RoughCalib_Value);
  12.          while(1)
  13.          {
  14.                   ADC_ChannelCfg(1 );     // ADC_ChannelCfg( 9 )
  15.                   abcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value;
  16.                   ADC_DataCalib_Fine( &abcBuff[i], ADC_PGA_0 );
  17.                   PRINT("%d ", abcBuff[i]);
  18.                   mDelaymS(500);
  19.          }
  20. }
复制代码



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表