OpenEdv-开源电子网

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

开启定时器以后,串口不能用

[复制链接]

3

主题

8

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-3-30
在线时间
4 小时
发表于 2018-1-19 10:41:48 | 显示全部楼层 |阅读模式
30金钱
本来是使用延时函数来定时上传传感器数据,但是上位机给下位机发送指令的时候,有时会导致传感器数据上传速度变慢,大约变慢十倍,后面打算使用定时器定时上传传感器的数据,但是打开定时器以后,串口就不能使用。工程文件在附件,求大神和原子哥帮忙指导一下。

蛇形下位机5串口3 - 4.zip

4.75 MB, 下载次数: 46

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

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2018-1-19 11:17:07 | 显示全部楼层
本帖最后由 操作系统 于 2018-1-19 11:20 编辑

我下载了楼主的程序看了一下.功能还是很复杂的.楼主目前的系统架构怕是难以胜任了呀.
问题之一.程序在中断里面运行的时间有点长了.想办法把中断的运行时间缩短一些.
中断里面只完成紧急事务处理,产生一个事件.在大循环里面来处理事件.会比较好一点.
UART,和TIMER都是相对独立的.不存在什么关联.也不存在,开了定时器就会影响UART使用.
有时间的话,楼主还是多学习一下状态机的做法,还有软件定时器.状态机+软件定时器,这个架构就很强大了.
基本上 可以不使用延时函数来延时,所有快速和慢速的事件都可以很好的得到处理.
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-3-30
在线时间
4 小时
 楼主| 发表于 2018-1-19 16:21:13 | 显示全部楼层
操作系统 发表于 2018-1-19 11:17
我下载了楼主的程序看了一下.功能还是很复杂的.楼主目前的系统架构怕是难以胜任了呀.
问题之一.程序在中断 ...

中断我缩短了 还是以前的情况 如果我把主函数中的定时器初始化打开 串口还是不能上传传感器数据 把定时器的初始化注释掉 就可以了 还有程序有的时候会跑飞
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2018-1-19 16:43:44 | 显示全部楼层
这说明.只是缩短中断服务程序是不够的.关键点原因 没有找到.
程序跑飞的原因要找一下.
有没有数组溢出的地方.程序没有写好.可能导致数组溢出跑飞.正常的程序是不会跑飞的.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 01:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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