非常感谢AI擎天柱板子已经收到。串口问题请教
<p>请教串口问题。32G单片机。串口4 定时器4作为波特率定时器。通过USB转串口CP210X和电脑连接(usb转串口没问题,采用论坛DMA不定长接收都正确)现在自己学习最基本的串口程序。</p><p>在串口中断中</p>
<p>void Uart4Isr() interrupt 18<br />
{<br />
if (S4TI) // 发送中断标志置1时<br />
{<br />
S4TI = 0; // 清零发送中断标志<br />
busy = 0; // 清零忙状态<br />
}<br />
if (S4RI) // 接收中断标志置1时<br />
{<br />
S4RI = 0; // 清零接收中断标志</p>
<pre><code>buffer = S4BUF; // 接收长度16
i++;
if(i>15) i = 0;
}
</code></pre>
<p>现在如果我通过ISP调试助手一次发送16字节数据只有第一个数据正常。后面都不正常。但是如果我用调试助手每次发送一个数据,连续发送16次。接收正常。百思不得其解。</p>
<p>在主程序中 当按键按下的时候将收到的数据返回电脑。</p>
<p>key1flag = 1; // 按下标志置1<br />
for(i=0;i<16;i++)<br />
{ UartSend(buffer); }</p>
<p>单独给数组赋值。按键按下 电脑接收正常。</p>
<p>菜鸟本想着一步一步进步。结果卡在这里了。</p>
注意指针和各个状态,可以看下我的程序
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4598 调试助手 停止位 选择 2一切正常。
页:
[1]