野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8541|回复: 6

串口通信相关问题

[复制链接]
发表于 2017-2-22 15:18:47 | 显示全部楼层 |阅读模式
想问问火哥,我现在需要需要定时每10分钟自动将数据通过串口发送出去;想请问是用TIM通用定时器来做吗?TIM中断和USART的发送中断都要打开吗?希望能教教我哈~
回复

使用道具 举报

发表于 2017-2-22 16:48:00 | 显示全部楼层
用定时器中断就可以了,用个标志,while一直检测该标志,检测到了之后串口发送,
中断时间到了之后,标志置位

串口不用中断也可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-22 17:06:42 | 显示全部楼层
flyleaf 发表于 2017-2-22 16:48
用定时器中断就可以了,用个标志,while一直检测该标志,检测到了之后串口发送,
中断时间到了之后,标志 ...

先在我已经实现在中断里面定时1秒钟把数据发出去;
我想在另一块板子通过串口中断获取发送来的数据,请问接收端可以告诉我怎么做吗?
还有这个简单的通信协议你看看合理吗?不合理的话哪里需要改一下,谢谢了!
(1)发送端定时发送本地ID给接收端
(2)接收端获取到ID,返回"获取成功"信息给发送端
(3)获取到“获取成功”信息后,发送端再一次发送本地ID+有效数据
(4)接收端通过之前获取的ID与第二次发送端传来的ID进行比较,若结果相同,获取数据;若结果不同则不能接收数据。
回复 支持 反对

使用道具 举报

发表于 2017-2-22 17:55:30 | 显示全部楼层
yaojunjie 发表于 2017-2-22 17:06
先在我已经实现在中断里面定时1秒钟把数据发出去;
我想在另一块板子通过串口中断获取发送来的数据,请 ...

接收用中断可以的,

协议双方一致就行,没什么要求,最好加上数据包的前识别id和后校验码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-23 09:48:58 | 显示全部楼层
flyleaf 发表于 2017-2-22 17:55
接收用中断可以的,

协议双方一致就行,没什么要求,最好加上数据包的前识别id和后校验码

我看到主流程序的中断标志放在main函数里面,中断处理放在中断函数里面;但是我的中断标志与处理过程都放在中断服务函数里面;想请教一下main函数里面主要放什么呢?我对程序的结构还不是很清楚呢,谢谢了!
回复 支持 反对

使用道具 举报

发表于 2017-2-23 11:16:05 | 显示全部楼层
yaojunjie 发表于 2017-2-23 09:48
我看到主流程序的中断标志放在main函数里面,中断处理放在中断函数里面;但是我的中断标志与处理过程都放 ...

大部分不是中断处理放在main函数中,而中断标志置位放在中断中嘛,这样不会影响中断的产生,而处理的话就放在main中慢慢进行,这是我的一点理解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-23 13:25:14 | 显示全部楼层
smtudou 发表于 2017-2-23 11:16
大部分不是中断处理放在main函数中,而中断标志置位放在中断中嘛,这样不会影响中断的产生,而处理的话就 ...

谢谢你的回答,我自己写点程序体会下;
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 22:23 , Processed in 0.038998 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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