我想知道我的数学是否正确。如果我的波特率是9600那么这意味着每秒发送9600位,对吧?如果是,那么:
9600 bit/sec <=> 1000 ms/ 9600 bit = 0.1042 ms/bit
因此,发送32KB应该采取:
32,000*(8+2) bits = 320,000 bits -- (8+2) because 8 data bits + 1 start bit + 1 stop bit
320,000 bits*0.1042 ms/bit = 33344 ms = 33.344 sec
这是对的吗?
答案 0 :(得分:10)
确实,你通过乘以位宽的近似值来丢失精度,这样就可以指定三位小数的时间是不正确的。
为避免精度损失,请勿使用舍入的中间表达式,而应使用:
bytes x bits_per_character / bits_per_second
所以在你的情况下:
32000 x 10 / 9600 = 33.333(recurring) seconds.
传统上,32Kb是指32 x 1024字节,因此在这种情况下:
32 x 1024 x 10 / 9600 = 34.1333(recurring) seconds.
答案 1 :(得分:8)
如果您需要粗略检查幅度(无论是3s还是30或300),请记住9600 kbps~1KB /秒(如果你有2个额外的奇偶校验/停止位,则为10位),所以32KB - &gt;大约32秒。
答案 2 :(得分:0)
我想知道我的数学是否正确。如果我的波特率为 9600,那么这意味着每秒发送 9600 位,对吗?如果是这样,那么:
9600 位/秒 <=> 1000 毫秒/9600 位 = 0.1042 毫秒/位
因此,发送 32KB 应该需要:
32,000*(8+2) bits = 320,000 bits -- (8+2) 因为 8 个数据位 + 1 个起始位 + 1 个停止位 320,000 位*0.1042 毫秒/位 = 33344 毫秒 = 33.344 秒
正确吗?
没有。更像是 3.33 秒。