#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL = 0x30; // P3.4,5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
UCA0BR0 = 0x03; // 32kHz/9600=3.41 (see User's Guide)
UCA0BR1 = 0x00; //
UCA0MCTL = UCBRS_3+UCBRF_0; // Modulation UCBRSx=3, UCBRFx=0
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA0IE |= UCRXIE; // Enable USCI_A0 RX interrupt
while(1)
{ for(int i=0;i < 1024;i++ )
{
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = 0x01; // TX -> RXed character
}
}
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3, interrupts enabled
__no_operation(); // For debugger
}
官网的例程稍作修改,使用的iar,波特率9600,使用我们自己设计的硬件电路(板子更换过多块),串口工具收到数据如下(每帧128字节)。各位大神多指导,万分感谢,也测试5438A,同样出现过这样的情况。
[09:54:07.791]收←◆01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01[09:54:07.924]收←◆01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01[09:54:08.056]收←◆01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01[09:54:08.189]收←◆01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
Susan Yang:
我会在测试后给您回复
您使用的是哪个串口助手?
灰小子:
楼主怎么判断128个字节出现延时的?
通过串口助手收到的数据吗?
换个串口助手吧,估计你用的串口助手缓存只有128个字节。
灰小子:
回复 Susan Yang:
不用测试的。
计算一下就好。
使用9600波特率,传输128个字节,按10位传输一个字节大约需要0.133秒。
09:54:07.924-09:54:07.791=0.133
09:54:08.056-09:54:07.924=0.132
完全没问题哦~~
Susan Yang:
回复 灰小子:
好方法 谢谢
user6221757:
回复 Susan Yang:
SSCOM V5.12.1作者习小猛,更换过多个测试工具,我们也自己也有测试软件,都有这样的情况,使用115200,测试就是1帧,不会断开。
user6221757:
回复 Susan Yang:
但是正常的话不应该出现帧换行现象。使用115200就是一只连着的。我们现在开发的产品,往上位机软件传输数据,一包1024字节,传输过程中就出现这样的的情况。
user6221757:
感谢各位的回答。
灰小子:
回复 user6221757:
这种发送大量数据的情况,应该关注有没有丢失数据。
你测试的时候不要发相同的数字,让数字自加1,然后发送。看收到的数据是否有丢失。