This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好!
是否有任何方法可以通过 UART 接收文本文件(大约10KB)。
您好!
是的、
例如:
添加一个标头、其中包含要发送/接收的字节数、
添加包含某种控制总和的尾数。
谢谢大家
实际上、我 通过连接到 PC 的 XBee 发送了一个.txt 文件
我的问题是如何通过与 MSP430F5529连接的另一个 XBee 接收此.txt 文件"MSP430F5529只需读取此文件并将其保存在 PC 上的另一个位置"
您好!
我不确定您的问题到底是什么。 我所理解的是、您正在使用名为 XBee 的射频模块发送.txt 文件并尝试接收它。 在我看来、就像您在射频侧的数据接收方面遇到困难一样。 由于我们没有 MSP430的应用报告、问题似乎是 XBee 方面的、而没有所用器件的可见性、因此我担心您需要在 XBee 模块制造商/供应商方面寻求支持。
如果您遇到与 MSP430相关的问题、可以返回我们。
此致
Peter
你(们)好
实际上、我在 C 代码中有一些桩模块、介绍了如何读取该文件以及 如何将该文件复制到 PC 上的另一个目录中
您好!
很抱歉我迟到了。 您遇到的问题似乎与 PC 端的软件运行问题有关、这是正确的吗?
此致
Peter
尊敬的 Peter:
我写了以下代码来接收 MSP430中的数据文件、并将其重新传输到同一发送器 XBee
但我没有收到我转码的所有字节"某些字节丢失"
我不知道原因
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include
#define RECEIVE_BUFFER_SIZE 256
#define packet_termination_char '\n'
int main (空)
{
WDTCTL = WDTPW + WDTHOLD;//停止 WDT
P3SEL |= BIT3+BIT4;// P3.3、4 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST;//**将状态机置于复位状态**
UCA0CTL1 |= UCSSEL_2;// SMCLK
UCA0BR0 = 6;// 1MHz 9600
UCA0BR1 = 0;// 1MHz 9600
UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;//模块化 UCBRSx=0、UCBRFx=0、
//过采样
UCA0CTL1 &=~UCSWRST;//**初始化 USCI 状态机**
UCA0IE |= UCRXIE;//中断 RX
_bis_SR_register (CPUOFF + GIE);//Enter LPM0 with interrupts
}
#pragma vector=USCI_A0_Vector
_interrupt void USCI_A0_ISR (void)
{
unsigned char ReceivedByte;
//静态无符号字符缓冲器[receive_buffer_size_1];
静态 int 计数= 0;
ReceivedByte = UCA0RXBUF;//从接收缓冲区中检索发送的数据
if (ReceivedByte!= packet_termination_char || count >= receive_buffer_size)
{
while (!(UCA0IFG&UCTXIFG));//等待发送缓冲区为空
UCA0TXBUF =接收字节;
count++;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
您好!
根据这些信息、我可以猜测、但我在代码中看到的是、您在 ISR 中阻止器件、等待 TX 标志、而不是将此 TX 部分放在 ISR 外部。 这意味着、如果 CPU 出于任何原因必须等待 TX 缓冲区准备好进行另一个传输、则 RX 缓冲区会获取其他字节、从而溢出、您就会丢失数据。
请记住、MSP430不允许默认的中断嵌套!
对于调试串行通信很有用的内容可能是以下应用报告。
此致
Peter
您好!
您能否向我提供您一侧状态的更新信息? 您是否仍需要有关此方面的支持? 非常感谢。
此致
Peter