OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3136|回复: 4

如何通过硬件中断方式实现对温湿度、光照度数据的采集。

[复制链接]

42

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2017-10-30
在线时间
51 小时
发表于 2019-4-29 10:19:15 | 显示全部楼层 |阅读模式
15金钱
如何通过硬件中断方式实现对温湿度、光照度数据的采集。?
不通过按键控制,该如何实现呢?谢谢了。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-4-29 10:49:41 | 显示全部楼层
通过定时器控制读取数据间隔,定时时间到了读取一次传感器数据就行。
回复

使用道具 举报

42

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2017-10-30
在线时间
51 小时
 楼主| 发表于 2019-5-3 19:55:57 | 显示全部楼层
HXYDJ 发表于 2019-4-29 10:49
通过定时器控制读取数据间隔,定时时间到了读取一次传感器数据就行。

谢谢你,
回复

使用道具 举报

42

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2017-10-30
在线时间
51 小时
 楼主| 发表于 2019-5-3 19:56:57 | 显示全部楼层
HXYDJ 发表于 2019-4-29 10:49
通过定时器控制读取数据间隔,定时时间到了读取一次传感器数据就行。

我还有些疑问想咨询下。程序是不是应该这么写?
int main (void)
{
        一系列的初始化定义;


     while(1)
      {
            if(风向标志位 == 1)
                {
                   采集风向传感器数据;
                    风向标志位 = 0;
                }
            if(风速标志位 == 1)
                {
                   采集风速传感器数据;
                    风速标志位 = 0;
                }
           if(温湿度标志位 == 1)
                {
                   采集温湿度传感器数据;
                   温湿度标志位 = 0;
                }
           if(光照度标志位 == 1)
                {
                   采集光照度传感器数据;
                    光照度标志位 = 0;
                }
           if(FLAG.SD == 1)
                      {
                   存储所有的传感器数据;
                   FLAG.SD == 0;
                }
            if(FLAG.GPRS == 1)
                      {
                   远程发送数据给上位机;
                    FLAG.GPRS == 0;
                }
  
          //在定时器中断里,程序是每当一个设定的时间到达,顺序将一个标志位置1,进行相应的工作,6次为一个循环。不停的这样工作着。
      }

这是我目前的基本程序,虽然能实现基本的采集传输功能,但是它必须一直的工作着。不切合实际的问题。
因为每一个传感器每次采集的时间间隔不一样,而我应该具体怎么去重新编写我的程序呢。需要它采集、传输的时候就工作,不需要的时候就让它处于休眠状态。
不知你是否有好的建议。谢谢了。
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-5-5 08:56:15 | 显示全部楼层
bufangqi 发表于 2019-5-3 19:56
我还有些疑问想咨询下。程序是不是应该这么写?
int main (void)
{

那就做成通讯格式的,需要采集数据的时候通过上位机发送指令给单片机,单片机接收到上位机指令开始采集传感器数据,没有上位机指令就休眠。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 09:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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