系列文章:
【从0到1搭建LoRa物联网】1、LoRa物联网的架构
【从0到1搭建LoRa物联网】2、终端设备开发方式
【从0到1搭建LoRa物联网】3、国产LoRa终端ASR6505软硬件
【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO
【从0到1搭建LoRa物联网】5、国产LoRa终端ASR6505驱动DHT11
【从0到1搭建LoRa物联网】6、国产LoRa终端ASR6505 I2C接口
【从0到1搭建LoRa物联网】7、国产LoRa终端ASR6505驱动段式LCD例程
【从0到1搭建LoRa物联网】8、国产LoRa终端ASR6505 PingPong通信
【从0到1搭建LoRa物联网】9、国产LoRa终端ASR6505 PingPong通信OLED显示

1、前言

ADC的采样范围是0-VCC,因此加在输入通道的电压不能超过VCC。
ADC通道说明

2、ADC通道说明

只有1个ADC外设,预留了3个通道供使用,开发板中H3针脚正是引出的ADC通道。

与STM8L的对应如下:

ASR6505 STM8
IN0 PC2(ADC1_IN6)
IN1 PC3(ADC1_IN5) IN2 PC7(ADC1_IN3)

3、ADC参考电压

VREFP引脚:是ADC参考电压的输入引脚,即就是开发板上的P4跳线帽,插上P4跳线帽就表示用VCC当做参考电压。

芯片内部参考电压:

可以看出,典型值为1.224V,因此我们采样的时候就以这个为参考来校准其他通道的采样值。

4、实验设计

间隔5s读取ASR6505的ADC的内部参考电压通道以及通道0的值,并转化成电压值通过串口打印。分别把VCC和GND输入到通道0。

5、代码实现

periph_adc.h/c部分代码:

#define ASR6505_CH_IN0   ADC_Channel_6
#define ASR6505_CH_IN1   ADC_Channel_5
#define ASR6505_CH_IN2   ADC_Channel_3#define ASR6505_PIN_IN0      PC_2
#define ASR6505_PIN_IN1      PC_3
#define ASR6505_PIN_IN2      PC_7
Gpio_t AdcIn0;void ADC_PeriphInit(void)
{  GpioInit( &AdcIn0, ASR6505_PIN_IN0, PIN_INPUT, PIN_PUSH_PULL, PIN_NO_PULL, 0);//初始化通道对应的io口
}void ADC_ReadSensor(void)
{      uint16_t adc_ref = 0,adc_data=0;float value=0;CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);//使能时钟//初始化ADCADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_1);ADC_Cmd(ADC1, ENABLE);//ADC通道设置ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_192Cycles);ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_192Cycles);ADC_VrefintCmd(ENABLE); //使能内部参考电压ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint, ENABLE);//使能通道ADC_SoftwareStartConv(ADC1); //开始转化while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));//等待转化完成ADC_ClearFlag(ADC1 , ADC_FLAG_EOC);    //清除标志位adc_ref = ADC_GetConversionValue(ADC1);//读取转化结果ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint, DISABLE);//失能通道ADC_ChannelCmd(ADC1, ASR6505_CH_IN0, ENABLE);ADC_SoftwareStartConv(ADC1);while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));ADC_ClearFlag(ADC1 , ADC_FLAG_EOC);adc_data = ADC_GetConversionValue(ADC1);ADC_DeInit(ADC1);CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, DISABLE);value=(1.224*4096.0/adc_ref)*(adc_data/4096.0);printf("adc_ref=%d,adc_data=%d,value=%f\r\n",adc_ref,adc_data,value);
}

主函数部分代码:

int main( void )
{   BoardInitMcu( );BoardInitPeriph( );printf("ASR6505 ADC test!\r\n");ADC_PeriphInit();   while(1){ADC_ReadSensor();printf("-------------------------------------------------- \r\n\r\n");Delay(5);}
}

6、实验现象

欢迎关注微信公众号【物联网思考】,回复关键字“ ASR6505”获取资料,《从0到1搭建LoRa物联网》系列的所有软硬件资料将会分享在公众号。

【从0到1搭建LoRa物联网】10、LoRa终端ASR6505 ADC采样相关推荐

  1. 【从0到1搭建LoRa物联网】11、ASR6505 LoRaWAN通信

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  2. 【从0到1搭建LoRa物联网】15、LoRa连接到The Things Network

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  3. 【从0到1搭建LoRa物联网】13、低成本单通道网关(一)

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  4. 【从0到1搭建LoRa物联网】16、LoRa连接到腾讯云物联网平台

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  5. 【从0到1搭建LoRa物联网】17、LoRa连接到chirpstack

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  6. 【从0到1搭建LoRa物联网】18、LoRa应用服务器Application Server

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  7. 【从0到1搭建LoRa物联网】20、LoRaWAN扩展

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  8. 【从0到1搭建LoRa物联网】14、低成本单通道网关(二)

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  9. 【从0到1搭建LoRa物联网】19、LoRa串口透传例程(补充)

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

最新文章

  1. Nature子刊超越诺贝尔经典理论:神经科学研究路漫漫...
  2. 函数名的应用(第一对象) 闭包 装饰器
  3. VTK修炼之道59:图形基本操作进阶_纹理映射
  4. 使用iperf进行设备吞吐量测试
  5. hp打印机一直显示正在打印中_惠普打印机哪个型号好 安装hp打印机驱动方法【详解】...
  6. 设计师交流社区|积累开拓眼界必备网站
  7. gdiplus判断一个点是否在圆弧线上_面试前必读!!!原生JS补给(上)
  8. MHA 节点程序介绍
  9. 超级扫盲-什么是设计模式?
  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
  11. 按中文排序List集合
  12. 深刻剖析快速排序为什么不稳定?
  13. VMware ESXi下载和安装
  14. 笔记本电脑重装win10系统图文并茂详细操作教程(微PE工具箱重装系统)
  15. deepin 相关问题
  16. python数据结构二叉树的查找算法_在路上---学习篇(一)Python 数据结构和算法 (5)二分查找、二叉树遍历...
  17. 【142期】List 中 remove() 方法的“陷阱”,被坑惨了!
  18. 电脑怎么录屏,什么录屏软件最好
  19. 一个计算机网络由8台计算机组成,2016年真题824计算机组成原理+计算机网络(2016-B).doc...
  20. 新站上线完整详细的SEO优化方案

热门文章

  1. LaTeX中的特殊字符
  2. MySQL 的read_only 只读属性说明
  3. 手把手教在VMware虚拟机中安装Windows11系统
  4. 西北农林科技大学计算机类到底咋样,为了去读985,西北农林科技大学值得选择吗?...
  5. 【ReID】局部特征
  6. 潍坊医学院计算机实验室里哪个门近,医学研究试验中心试验室安全知识题库-潍坊医学院.PDF...
  7. 苹果cms模板_苹果CMS V10 开源影视系统,搭建一个属于自己的影视网
  8. JavaScript -- 闭包与作用域链
  9. 列主元素消去法的Matlab实现
  10. el-select支持远程搜索时是没有下拉箭头icon的