0 - 450,000 đ        

[MSP430 TUT] 10. Uart

Làm luôn cái tut cho các bạn vọc hé 

Đây là những gì bạn cần:
Name:  1.jpg
Views: 63
Size:  15.9 KB
Lưu ý 2 cái jumper UART nối zị nè nhe, nhầm là một hồi nhăn nhó mặt mày á 
Name:  2.jpg
Views: 63
Size:  24.2 KB
Sau khi cắm vào máy tính, trong Device Manage sẽ báo cho bạn biết cổng COM ảo do MSP430G2 KIT tạo ra có tên gì (ở đây nó ghi là COM5). Bạn lưu ý tên này nhé, sẽ khác nhau với từng slot USB đấy.
Name:  3.jpg
Views: 62
Size:  19.9 KB
Sau đó bạn chạy pm Hercules (tui thích pm này vì nó tiện lợi nhất so với các pm khác), chọn tab Serial để truyền/nhận UART.
Name:  4.jpg
Views: 62
Size:  20.3 KB
Thiết lập thông số thế này: Chọn cổng COM5 (cái tên hồi nãy coi trong Device Manage ấy), chọn baudrate tương ứng với code của bạn viết (ở đây tui viết code 9600)
Name:  5.jpg
Views: 63
Size:  18.7 KB
Bấm Open để chạy cổng COM ảo thôi bạn ạ
Name:  6.jpg
Views: 63
Size:  22.3 KB
Sau khi chạy cổng COM thành công, thông báo sẽ hiện thế này:
Name:  7.jpg
Views: 63
Size:  18.4 KB
Giờ bạn nạp code truyền UART của bạn (hoặc trong hình là code tui viết trong file gửi kèm ở dưới). Nhớ đúng baudrate ở cả soft & hardware nhé.
Name:  8.jpg
Views: 61
Size:  19.4 KB
Sau khi tui chạy debug, lập tức MSP430G2553 của tui gửi ngay dữ liệu lên máy tính, Hercules đọc và hiển thị dữ liệu nhận từ UART ngay.
Name:  9.jpg
Views: 63
Size:  18.7 KB
Trong code tui viết, khi MSP430 nhận dữ liệu (ASCII) từ máy tính gửi xuống, lập tức nó sẽ gửi lại cái byte vừa nhận được lên máy tính trở lại.
Do đó khi tui gõ bất kỳ ký tự nào trên bàn phím (chữ màu tím), lập tức nhận được byte đó do MSP430 gửi trả lên ngay (chữ màu đen).
...Nó gửi nhanh hơn tui gõ...
Name:  10.jpg
Views: 63
Size:  15.3 KB
Nếu bạn muốn gửi 1 chuỗi ký tự lên MSP430, bạn nhập ở đây, sau đó bấm Send
Name:  11.jpg
Views: 64
Size:  20.3 KB
Lập tức nhận lại được chuỗi đó từ MSP430 gửi lên, thế là ok truyền nhận UART rồi bạn nhé
Name:  13.jpg
Views: 64
Size:  14.2 KB
Tất cả những gì bạn cần để chơi với UART MSP430 là KIT MSP430, duy nhất 1 sợi cáp của nó, máy tính, và điện.
Hy vọng có thể giúp ích cho các bạn về khâu UART MSP430

Đây là code giao tiếp UART với máy tính mình viết...nhưng làm sao để post ở dạng cửa sổ trượt nhỉ???
 

 
// MSP430G2xx3
// -----------------
// /|\| XIN|-
// | | |
// --|RST XOUT|-
// | |
// | P1.2/UCA0TXD|------------>
// | | 9600 - 8N
// | P1.1/UCA0RXD|<------------

#include "msp430g2553.h"

void Wst(char* string)
{
while(*string) // Het chuoi ky tu thi thoat
{
while (!(IFG2&UCA0TXIFG)); // Doi gui xong ky tu truoc
UCA0TXBUF= *string; // Moi cho phep gui ky tu tiep theo
string ++; // Lay ky tu tiep theo
}
}

void Wch(unsigned char data)
{
while (!(IFG2&UCA0TXIFG)); // Doi gui xong ky tu truoc
UCA0TXBUF= data; // Moi cho phep gui ky tu tiep theo
}

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = CALBC1_1MHZ; // Set DCO 1Mhz
DCOCTL = CALDCO_1MHZ;
P1SEL |= BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 |= BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 104; // 1MHz/9600 = ~104.2
UCA0BR1 = 0;
UCA0MCTL |= UCBRS0; // Modulation UCBRSx = 1
UCA0CTL1 &=~ UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt

__bis_SR_register(GIE); // Interrupts enabled
Wst("Completed!");
Wch(10);
Wch('T');
Wch('u');
Wch('t');
Wch(' ');
Wch('U');
Wch('A');
Wch('R');
Wch('T');
while(1)
{

}
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
}

.
.
Gửi nhầm tấm ở dưới mà sao ko xóa được nhỉ???

Vui lòng đợi ...

Đặt mua sản phẩm

Xem nhanh sản phẩm