社区
网络编程
帖子详情
请问用串口发送数据,一次最大能发多少字节?
stevenuserregister
2010-04-17 09:31:26
我编了一个程序,一次发1000个字节的16进制的0,程序在第二次按钮点击发送时就报错。
但我发100个字节的的16进制的0,程序就能多次发送。
难道串口发送有字节限制?
我是新手,有谁能帮忙解释一下串口发送时的那几个参数?
先谢谢了!
...全文
8433
8
打赏
收藏
请问用串口发送数据,一次最大能发多少字节?
我编了一个程序,一次发1000个字节的16进制的0,程序在第二次按钮点击发送时就报错。 但我发100个字节的的16进制的0,程序就能多次发送。 难道串口发送有字节限制? 我是新手,有谁能帮忙解释一下串口发送时的那几个参数? 先谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxdlms
2010-04-19
打赏
举报
回复
你写发送函数的时候就应该注意这一点,根据writefile的lpNumberOfBytesWritten参数判断是否发送完成,如果没有,则应该循环调用writefile发送剩下的字节直至所有的字节发送完成。等你的这次发送完成再返回你的发送函数。
江川
2010-04-19
打赏
举报
回复
串口发送的时候你可以根据波特率来计算每秒发送的字节数
9600波特率为例
8位数据为,1为停止位,1位校验位,则
9600 / (8 + 2)= 960个字节的数据
wuchuncai
2010-04-19
打赏
举报
回复
按道理,是不限的。看看内存是不是没管理好?
只要返回,就意味发送完毕。
LitteGreen
2010-04-19
打赏
举报
回复
当收到返回值,就代表完全发送完了~!
青稞
2010-04-19
打赏
举报
回复
发送完后,看返回值是多少吧。。
stevenuserregister
2010-04-19
打赏
举报
回复
[Quote=引用 1 楼 zgl7903 的回复:]
这个取决于发送的波特率和设置的缓冲区大小
按9600波特率来说, 1个起始位 8个数据位 1个停止位
那么 9600/10=960Bytes 也就是每秒钟的数据量不会超过960字节
如果波特率提高到115200 则可以达到11.52KB/S
详读一下MSDN的帮助文档
http://msdn.microsoft.com/en-us/library/ms810467.aspx
[/Quote]
谢谢zg17903的回复。
我想知道的是一次能传送多少字节?不限制多少秒。
另外,发送数据后,怎样才能知道已经发送完成?
soswaidao
2010-04-17
打赏
举报
回复
友情帮顶,友情帮顶
zgl7903
2010-04-17
打赏
举报
回复
这个取决于发送的波特率和设置的缓冲区大小
按9600波特率来说, 1个起始位 8个数据位 1个停止位
那么 9600/10=960Bytes 也就是每秒钟的数据量不会超过960字节
如果波特率提高到115200 则可以达到11.52KB/S
详读一下MSDN的帮助文档
http://msdn.microsoft.com/en-us/library/ms810467.aspx
STM32F103实现
串口
收发数据功能
串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。
串口
通信(Serial Communications)的概念非常简单,
串口
按位(bit)发送和接收
字节
的通信方式。 中断发送方式的基本过程是:每发送一个
字节
,该
字节
发送完毕引发中断,中断处理程序再发送下一个
字节
……直到发送完成。 该接口不需要等待接收完成再返回,整个接收过程不需要用户干预,最好检查下返回值,看有没有调用成功,因为如果上次数据还没接收完整,处理忙状态,是不可以再发起新的接收过程的。 中断在硬件层面的触发方式:如果是电平触发的中断,在中断式发送函数中会使能相应的中断,因为发送缓冲区为空,其所处的电平状态就在中断功能被使能后会直接触发中断,导致第一个
字节
在中断处理函数中被发送出去
C#写的
串口
16进制收发程序(源码).rar
利用
串口
控件实现的16进制收发通讯程序:收到的数据以16进制显示,
发送数据
以16进制形式发送。
STM32
串口
单次只
能发
送1
字节
?详解硬件限制与多
字节
发送方案
STM32
串口
单次发送
字节
限制解析 1. 硬件限制 STM32的USART模块硬件设计决定了其单次操作仅支持1
字节
(8位)数据发送。数据寄存器(TDR/RDR)为9位结构,但实际通常配置为8位模式,因此无法直接发送多
字节
数据。 2. 数据拆分逻辑 案例中拆分`short`类型(16位)为两个8位
字节
的原因包括: - 硬件兼容性:适配8位数据帧结构,避免直接发送多
字节
导致数据截断;
串口
发送数据
只能一个一个发送?不能连续发送???
主MCU想
发送数据
包: 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 给从MCU,但是从MCU触发
一次
串口
中断只能接收一个数据,连续触发八次,直到0x80被成功接收,这样违背了代码初衷,整个数据包就不会被正确的解析,导致数据接收异常。问题描述:当主机给MCU发送8位数据时,从MCU只能一个一个接收,当第一个数据被接收成功后,第二个数据才会再次触发中断,以此类推,直到第八个
字节
被成功接收,这样我的数据包接收就会存在问题。
串口
发送一帧数据时,两个
字节
的间隔时间是多少?
串口
发送一帧数据时,两个
字节
的间隔时间是多少?
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章