Tôi đang cố gắng để gửi/nhận một chuỗi thông qua C#, C# tôi chỉ cần làm:SerialPort & CCS Chuỗi Truyền
SerialPort.WriteLine("A6");
nhưng trong CCS, nếu tôi cố gắng gửi một chuỗi char sau char nó không làm việc ở tất cả, không phải với ReadLine cũng như với ReadExisting! Đây là những gì tôi đã thử tạo một mảng, vì vậy mỗi khi chúng ta nhập pragma RXBUFF, chúng ta thêm char đã nhận vào mảng, cho đến khi mảng đầy (tôi xác định ngẫu nhiên kích thước mảng là 2, có nghĩa là chúng ta đối phó với 2 -char dài chuỗi), và cuối cùng là gửi chuỗi bằng cách gửi char sau char:
#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
if(__even_in_range(UCA1IV,18) == 0x02){ // Vector 2 - RXIFG
if(counter==0)
{
Data[0]=UCA1RXBUF;
counter++;
}
else
{
Data[1]=UCA1RXBUF;
counter=0;
UCA1TXBUF=Data[0];
while(!(UCA1IFG & UCTXIFG)); // until UCTXBUF1 is empty
UCA1TXBUF=Data[1];
}
}
trong C#:
listBox2.Items.Add(SerialPort.ReadExisting());
tôi nhận được văn bản không có ý nghĩa, như: ?? Một ??? đôi khi: ???? A? vv .., nhưng với:
listBox2.Items.Add(SerialPort.ReadLine());
trong lần đầu tiên tôi bấm nút Gửi đó gửi "A6", tôi nhận được gì, lần thứ hai tôi nhận được không có ý nghĩa là tốt, giống như hành vi ReadExisting.
bằng cách này, ngay cả khi tôi cố gắng để gửi chuỗi theo cách đơn giản nhất (không có mảng và điều kiện), tôi có nghĩa như thế này:
#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
UCA1TXBUF='A';
while(!(UCA1IFG & UCTXIFG)); // until UCTXBUF1 is empty
UCA1TXBUF='6';
tôi cũng có được mặt hàng không phù hợp trong listbox.
Tuy nhiên, nếu tôi làm điều này:
#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
UCA1TXBUF=UCA1RXBUF;
tôi làm được "A6" trong listbox và tất cả mọi thứ chỉ hoạt động tốt (với ReadLine và ReadExisting)! ai cũng có thể cho tôi biết tại sao điều này xảy ra?
http://electronics.stackexchange.com/questions/71810/uart-is-garbled-when-running-at-more-than-9600-bps –
Bạn đã xác nhận rằng Tốc độ truyền và các thuộc tính khác được khớp lên? –
Có! nếu các thuộc tính không khớp với nhau, tôi đoán lần thử cuối cùng sẽ không hoạt động, nhưng nó hoạt động. bạn không đồng ý với tôi –