你好,1)DSPS中间是不可能的,就会批发中间,还必须收包超过一定量又时间到到会陶发中间?2)串口中断管理分数期间,串口会丢包吗?还会否报告,也就是中间管理分数的行排时间不依赖收包,收包收包和仪器的数量相关?3)如果串口串口仪全,又没别制作来读包,串口是不是是是开始丢包?谢谢
1.注意到tx_wait_level和tx_wait_round这两两数,用于决定什么时代开启ble的数据传输2. uart会继续收包,这是硬件直接完成的工作;只不成时时中间断屏蔽屏蔽,不合会批发新的中间。3.是那个,老的数码就会被覆盖
好的,。还有个疑问,我看蓝牙发表那块,一流更多可发128个字节吗?#define tx_size(128)#define tx_wait_level(74)// 3包(20 + 2 * 27)#define tx_wait_rounds(10)#define tx_start_frame_data_size(20)#define tx_continue_frame_data_size(27)if(length> tx_wait_level ||(rounds_waiting ++)> = tx_wait_rounds){uint8_t * p_data = null;
循环_waiting = 0;tx_busy_flag = true;
1)长度=(长度> tx_size?tx_size:长度);2)长度=(长度3)长度= user_buffer_read_address(&periph_to_ble_buffer,&p_data,tx_size);user_send_ble_data(p_data,长度);}
还有个很大的疑惑是长度的计算。“1)”我可以理解,保证发离布长度不再最大发诗;“2)”我理解是不可能的分享分享,首包的,首包的是20byte,这个设计应该是考虑天线效率的,而且而且应该考虑只的,而且这个分享也只是数码长度满足20+x * 27的格式吧?“3)”我就非常不理解了,它是根据缓冲区的长度来发动的,感觉这个完全就把1,2覆盖了。还有,我记得蓝牙数码包的最大声是不是不是超过27byte,串口程序一下子发给128byte,那协议栈会自动分享?是不是在把码放在一起?谢谢!
首先,最大长度为27是出于这样的考虑。蓝牙为4.0的数据分别的长度最大为31个字节,由标题字段的字段(5个位)。由于有可能会涉及到加入,需要户外留出4个字节,使用存储麦克风的数码。所以是27个。
而首个数码是20个字节,是因为需要前面前面7个字节存储以尾信息:> 2字节所有数码包的长度(包含拆包之迹的有条计长度,即20+ 27 * x)> 2个字节频道ID(一切对于写作作来说,为0x0004)> 1字节命令(0x52 - 属性Opcode - Write命令)> 2字节属性句柄(对应您要写的属性柄)
是在协议栈自动分享的
1.注意到tx_wait_level和tx_wait_round这两两数,用于决定什么时代开启ble的数据传输
2. uart会继续收包,这是硬件直接完成的工作;只不成时时中间断屏蔽屏蔽,不合会批发新的中间。
3.是那个,老的数码就会被覆盖
好的,。
还有个疑问,我看蓝牙发表那块,一流更多可发128个字节吗?
#define tx_size(128)
#define tx_wait_level(74)// 3包(20 + 2 * 27)
#define tx_wait_rounds(10)
#define tx_start_frame_data_size(20)
#define tx_continue_frame_data_size(27)
if(length> tx_wait_level ||(rounds_waiting ++)> = tx_wait_rounds)
{
uint8_t * p_data = null;
循环_waiting = 0;
tx_busy_flag = true;
1)长度=(长度> tx_size?tx_size:长度);3)长度= user_buffer_read_address(&periph_to_ble_buffer,&p_data,tx_size);
2)长度=(长度
user_send_ble_data(p_data,长度);
}
还有个很大的疑惑是长度的计算。
“1)”我可以理解,保证发离布长度不再最大发诗;
“2)”我理解是不可能的分享分享,首包的,首包的是20byte,这个设计应该是考虑天线效率的,而且而且应该考虑只的,而且这个分享也只是数码长度满足20+x * 27的格式吧?
“3)”我就非常不理解了,它是根据缓冲区的长度来发动的,感觉这个完全就把1,2覆盖了。
还有,我记得蓝牙数码包的最大声是不是不是超过27byte,串口程序一下子发给128byte,那协议栈会自动分享?是不是在把码放在一起?
谢谢!
首先,最大长度为27是出于这样的考虑。蓝牙为4.0的数据分别的长度最大为31个字节,由标题字段的字段(5个位)。由于有可能会涉及到加入,需要户外留出4个字节,使用存储麦克风的数码。所以是27个。
而首个数码是20个字节,是因为需要前面前面7个字节存储以尾信息:
> 2字节所有数码包的长度(包含拆包之迹的有条计长度,即20+ 27 * x)
> 2个字节频道ID(一切对于写作作来说,为0x0004)
> 1字节命令(0x52 - 属性Opcode - Write命令)
> 2字节属性句柄(对应您要写的属性柄)
是在协议栈自动分享的