尝试访问从Nios II UART发送的串行端口数据时出现以下错误:超时期限内未返回指定数量的数据或在达到终结符之前发生超时。
当我将超时设置为小于10秒(例如2秒)或6或8等时,会出现上述错误。
set(s,'BaudRate',115200,'timeout',10); %timeout is in seconds.
如果我将超时设置为'10'或更大,我没有得到超时错误,但是,使用此超时,采样率为0.067Hz,我可以获得的样本总数仅为493 in 120分钟,这是太少了。在超时设置为2秒的类似系统中,我们可以在120分钟内获得46253个样本,采样率= 5Hz。 (这在以前没有使用Nios系统时工作,只是FPGA)
我的想法:由于Matlab现在需要等待更长时间才能获得更少的样本,而之前的系统没有使用Nios。
我不知道并需要您的意见:如何增加收到的样本数量? 如何提高采样率?
我的系统中有什么(在C代码中):在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);}