野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12844|回复: 4

串口调试

[复制链接]
发表于 2018-3-27 09:56:21 | 显示全部楼层 |阅读模式
小弟有一个问题不是很懂,想请教一下各位大哥。
在调试串口的时候,我是用中断来接收数据的,现在我想用上位机一次发送一个8位的数据,中断函数的思路是:进入中断之后,接收到1位数据,关闭串口中断,然后执行中断函数的程序,程序执行完之后再打开中断。我想请教各位的是,如果我这样做的话,串口的缓存区里的数会不会被后面的数据覆盖掉,如果会的话,有什么好的解决办法吗?谢谢各位了!!
回复

使用道具 举报

发表于 2018-3-27 10:09:25 | 显示全部楼层
不能这样的,接收到一个8位数据才会中断,中断服务函数里把数据读取走,这样下一个数据来的时候就不会覆盖了,都是这样操作的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-27 10:22:29 | 显示全部楼层
flyleaf 发表于 2018-3-27 10:09
不能这样的,接收到一个8位数据才会中断,中断服务函数里把数据读取走,这样下一个数据来的时候就不会覆盖 ...

万分抱歉,我刚刚写错了,我用上位机发送的是一个8个字节的数据,中断服务函数里面一次读取1个字节的数据,刚刚写错了。请问这样的话可不可以呢?
回复 支持 反对

使用道具 举报

发表于 2018-3-27 10:24:52 | 显示全部楼层
一条咸鱼 发表于 2018-3-27 10:22
万分抱歉,我刚刚写错了,我用上位机发送的是一个8个字节的数据,中断服务函数里面一次读取1个字节的数据 ...

可以啊,都是这样的,中断把数据读走存储在数组里就好,参考我们最新的串口例程,有包含队列缓冲区的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-27 10:25:40 | 显示全部楼层
flyleaf 发表于 2018-3-27 10:24
可以啊,都是这样的,中断把数据读走存储在数组里就好,参考我们最新的串口例程,有包含队列缓冲区的

嗯嗯 ,好的,谢谢您啦!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 15:38 , Processed in 0.043673 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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