OpenEdv-开源电子网

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

测温和发送数据,怎么样协调工作?

[复制链接]

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2016-8-16
在线时间
19 小时
发表于 2016-9-14 09:35:44 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 xuande 于 2016-9-14 11:23 编辑

我想用TIM3_ETR控制串口周期性的发送数据但是如果用while跟delay的话又会一直在执行发送这个步骤不能执行测温函数,怎样才能测温跟发送数据互不影响,我知道这样的问题很弱智。。。但是就是不会啊!!!

最佳答案

查看完整内容[请看2#楼]

#define SEND_DELAY 1 //发送周期 #define TEMP_DELAY 10 //测温周期 send = 0; temp =0; while ( 1 ) { delay(); //延时函数,自己实现 send ++; if ( send >= SEND_DELAY ) { send_work(); //执行send操作 } temp ++; if ( temp >= TEMP_DELAY ) { temp _work(); //执行测温操作 } }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2016-8-2
在线时间
13 小时
发表于 2016-9-14 09:35:45 | 显示全部楼层

#define SEND_DELAY 1  //发送周期
#define TEMP_DELAY 10 //测温周期
send = 0;
temp  =0;
while ( 1 )
{
     delay();  //延时函数,自己实现
      send ++;
     if ( send >= SEND_DELAY  )
     {
        send_work();   //执行send操作
    }

    temp  ++;
     if ( temp  >= TEMP_DELAY  )
     {
       temp _work();   //执行测温操作
    }
}
回复

使用道具 举报

9

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2013-7-16
在线时间
80 小时
发表于 2016-9-14 09:51:14 | 显示全部楼层
你的目的是不是要把温度值通过串口发送?  写个串口发送函数 和 测温函数 , 测一次发送一次。 这样就可以了。
回复

使用道具 举报

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2016-8-16
在线时间
19 小时
 楼主| 发表于 2016-9-14 10:23:38 | 显示全部楼层
但是我的测温是10s一次,发送是1s一次,这样的话必须要发送旧的温度的
回复

使用道具 举报

9

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2013-7-16
在线时间
80 小时
发表于 2016-9-14 10:28:10 | 显示全部楼层
HOTWAR 发表于 2016-9-14 10:23
但是我的测温是10s一次,发送是1s一次,这样的话必须要发送旧的温度的

用个定时器,1S 发送一次数据, 10S 测一次温度。 不冲突。
回复

使用道具 举报

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2016-8-16
在线时间
19 小时
 楼主| 发表于 2016-9-14 10:28:54 | 显示全部楼层
cookles 发表于 2016-9-14 10:28
用个定时器,1S 发送一次数据, 10S 测一次温度。 不冲突。

就是这个不会哎。。。
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2016-9-14 10:32:04 | 显示全部楼层
HOTWAR 发表于 2016-9-14 10:28
就是这个不会哎。。。

回复

使用道具 举报

9

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2013-7-16
在线时间
80 小时
发表于 2016-9-14 10:39:34 | 显示全部楼层
HOTWAR 发表于 2016-9-14 10:28
就是这个不会哎。。。

原子的例程有定时器的代码啊, 自己看下修改就可以用的。 不难的。
回复

使用道具 举报

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2016-8-16
在线时间
19 小时
 楼主| 发表于 2016-9-14 10:41:46 | 显示全部楼层
cookles 发表于 2016-9-14 10:39
原子的例程有定时器的代码啊, 自己看下修改就可以用的。 不难的。

我再试试
回复

使用道具 举报

84

主题

766

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
金钱
2775
注册时间
2015-6-1
在线时间
394 小时
发表于 2016-9-14 13:47:30 | 显示全部楼层
while跟delay不会有任何影响啊,定时器里干活的时间别大于定时器的设置时间就行,不可能在while和delay里待1s以上吧?
自在随心
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-9-14 13:49:41 | 显示全部楼层
HOTWAR 发表于 2016-9-14 10:28
就是这个不会哎。。。

能告诉我你会什么
回复

使用道具 举报

84

主题

766

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
金钱
2775
注册时间
2015-6-1
在线时间
394 小时
发表于 2016-9-14 13:51:58 | 显示全部楼层

大叔,我第一次见到你时你好像还是小星星进化了
自在随心
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-9-14 13:56:15 | 显示全部楼层
yuzeyuan1 发表于 2016-9-14 13:51
大叔,我第一次见到你时你好像还是小星星进化了

天天水经验就可以进化了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 10:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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