[求助]串口通信中输入缓冲区设置的问题

maomao8091 2014-09-26 06:26:33
小弟最近做串口通信,对输入缓冲区的设置有些疑问?
1,如果我设置put_InBufferSize(10),是否意味着,我串口只能接收10个字节的数据?
我一直这样认为的,但仿真的时候发现不管我设置put_InBufferSize为多少,所有的数据都能接收到。为啥?谁能给我讲讲缓冲区的作用和工作原理!
2,如果我把缓冲区里面的数据读走了,另一边的发送端一直在给我发数据,在我读数据的这段时间,这里面会不会有丢失数据的现象呢?
...全文
738 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-12-01
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2014-10-30
  • 打赏
  • 举报
回复
“驱动器 的 缓冲?硬件缓冲?” 应用程序通过驱动程序来读写硬件缓冲.,驱动程序 的 缓冲大小 可以 设置, 但 都 在 1K 字节 左右, 比 硬件 (芯片) 自带的 缓冲 (1;16)大的多。
maomao8091 2014-10-30
  • 打赏
  • 举报
回复
引用 8 楼 schlafenhamster 的回复:
"那put_InBufferSize(10),有什么意义呢?" 没意义, 通常 驱动器 的 缓冲 要 比 硬件 缓冲 大 的 多
驱动器 的 缓冲?硬件缓冲?小弟不太明白,能否讲讲
schlafenhamster 2014-10-11
  • 打赏
  • 举报
回复
"那put_InBufferSize(10),有什么意义呢?" 没意义, 通常 驱动器 的 缓冲 要 比 硬件 缓冲 大 的 多
maomao8091 2014-10-11
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
“1,如果我设置put_InBufferSize(10),是否意味着,我串口只能接收10个字节的数据?” 否; 硬件本身 有 16字节 缓冲。
那put_InBufferSize(10),有什么意义呢?
wushuang443 2014-09-30
  • 打赏
  • 举报
回复
引用 3 楼 maomao8091 的回复:
[quote=引用 2 楼 wushuang443 的回复:] 你在读数据的时候要加锁的。避免这个问题。缓冲区一般设置1024个字节吧,输入输出都设置1024
读数据要加锁是什么意思啊? [/quote]你先了解下线程同步吧,锁的一个作用就是防止某些情况下两边同时操作一个变量或一段代码,造成数据错。
schlafenhamster 2014-09-30
  • 打赏
  • 举报
回复
“1,如果我设置put_InBufferSize(10),是否意味着,我串口只能接收10个字节的数据?” 否; 硬件本身 有 16字节 缓冲。
schlafenhamster 2014-09-30
  • 打赏
  • 举报
回复
“在我读数据的这段时间” 里 发送数据在 输出缓冲里 “在你写数据的这段时间” 里 读入数据在输入缓冲里。
maomao8091 2014-09-30
  • 打赏
  • 举报
回复
引用 2 楼 wushuang443 的回复:
你在读数据的时候要加锁的。避免这个问题。缓冲区一般设置1024个字节吧,输入输出都设置1024
读数据要加锁是什么意思啊?
maomao8091 2014-09-28
  • 打赏
  • 举报
回复
拜托了,各位高手,谁能给我解答一下啊
wushuang443 2014-09-28
  • 打赏
  • 举报
回复
你在读数据的时候要加锁的。避免这个问题。缓冲区一般设置1024个字节吧,输入输出都设置1024

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧