尝试访问从 Nios II UART 发送的串行端口数据时出现以下错误:在超时期限内未返回指定数量的数据或在达到终结器之前发生超时。
当我将超时设置为小于 10 秒(例如 2 秒或 6 或 8 等)时,会发生上述错误。
set(s,'BaudRate',115200,'timeout',10); %timeout is in seconds.
如果我将超时设置为“10”或更大,我没有收到超时错误,但是,在这个超时下,采样率为 0.067Hz,我可以获得的样本总数在 120 分钟内只有 493 个太少了。在超时设置为 2 秒的类似系统中,我们可以在 120 分钟内获得 46253 个样本,采样率 = 5Hz。(这在以前没有使用 Nios 系统时有效,只是 FPGA)
我的想法:我得到的样本太少了,因为与以前没有使用 Nios 的系统相比,Matlab 现在需要等待更长的时间。
我不知道并且需要您的意见:如何增加要接收的样品数量?如何提高采样率?
我的系统中有什么(在C代码中):在main中,main调用函数“uart_multiple”,我有12组数据要发送到串口,每组数据有10个元素('n'代表10个字节,一个元素是一个字节),所以我一个一个地传输一组数据。
我怀疑这可能是低采样率的原因,但我不确定。
您认为我们可以同时传输所有 12 套设备来避免这个问题吗?
如果是,我应该怎么做才能同时传输所有 12 组?
int main (){
uart_multiple (&txdata1, n);
uart_multiple (&txdata2, n);
uart_multiple (&txdata3, n);
uart_multiple (&txdata4, n);
uart_multiple (&txdata5, n);
uart_multiple (&txdata6, n);
uart_multiple (&txdata7, n);
uart_multiple (&txdata8, n);
uart_multiple (&txdata9, n);
uart_multiple (&txdata10, n);
uart_multiple (&txdata11, n);
uart_multiple (&txdata12, n);}