OpenEdv-开源电子网

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

串口输出的相关问题,想要1s输出一个测量数据

[复制链接]

5

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
327
金钱
327
注册时间
2019-1-3
在线时间
47 小时
发表于 2021-12-24 11:47:54 | 显示全部楼层 |阅读模式
5金钱
用的是F103的战舰板子,现在做的是一个用SHT85测量温湿度并控制的一个项目。
我想让串口1s发送一个数据到电脑,但是放在循环里的话测量频率会降低
同时因为要用到按键来输入需要设定的温湿度,所以加延时的话按键会变得不灵敏
如果用定时器的话,就一次输出好几个数据,没达到想要的效果(可能是我使用方法不对)
看了下原子哥的教程,没找到头绪,有老哥指导一下么

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

使用道具 举报

5

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
327
金钱
327
注册时间
2019-1-3
在线时间
47 小时
 楼主| 发表于 2021-12-24 16:54:00 | 显示全部楼层
bin133 发表于 2021-12-24 15:16
中断里面放标志位就好啦,处理放在循环里面,循环里面就尽量不要放延时了

TIM3_Int_Init(4999,14399);//1s
这个我试了一下,发现就是间隔一秒以后串口在1s时间内发送好几个数据
回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2021-12-24 12:02:02 | 显示全部楼层
不会是直接在主函数里面delay_ms(1000)吧
回复

使用道具 举报

11

主题

2153

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4936
金钱
4936
注册时间
2015-1-10
在线时间
618 小时
发表于 2021-12-24 13:38:04 | 显示全部楼层
就定时器啊,设个1ms或是10ms或是100ms的溢出中断,溢出的时候置标志,主循环检验标志然后发送
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-12-24 15:16:55 | 显示全部楼层
中断里面放标志位就好啦,处理放在循环里面,循环里面就尽量不要放延时了
回复

使用道具 举报

5

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
327
金钱
327
注册时间
2019-1-3
在线时间
47 小时
 楼主| 发表于 2021-12-24 16:54:55 | 显示全部楼层
GJJ1999 发表于 2021-12-24 12:02
不会是直接在主函数里面delay_ms(1000)吧

这样有问题呀 我按键按下去要按好久才有反应
回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2021-12-24 17:02:17 | 显示全部楼层
刘心阳 发表于 2021-12-24 16:54
这样有问题呀 我按键按下去要按好久才有反应

肯定有问题,主函数循环直接延迟1s这么长,你可以在主程序执行delay_ms(10),然后用一个变量t++记录,t增加到100就是1S,自己用if判断。如果对延迟时间比较高的要求,也可以用定时器来计时。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 21:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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