giúp đỡ khẩn cấp yêu cầu: PC để MSP430 qua cổng nối tiếp

A

anand_navale

Guest
Tôi đang làm việc trên một dự án có liên quan đến truyền thông nối tiếp giữa MSP430f1232 và PC tại tốc độ truyền của 38.400 b / s.Tôi có thể nhận dữ liệu ở cuối từ MSP430 PC nhưng đã không thành công trong việc tiếp nhận dữ liệu ở cuối vi điều khiển từ máy tính.

vi điều khiển này có tần số tinh thể của 4,00 MHz.Tôi đang sử dụng IAR Embedded Workbench cho phát.

Việc khởi tạo của USART0 được thực hiện bằng cách sử dụng đoạn code sau đây:

/ *
Khởi tạo giá trị cho UxBR và UxMCTL đăng ký
để thiết lập tốc độ truyền tới 38,4 KHz giả BRCLK = 4 MHz.
Những giá trị này được tính bằng cách sử dụng các công thức được đưa ra trong MSP430 userguide.
* /
# Define UART_BAUD 0x0068
# Define 0x08 MODULATION_VAL

/ *
USART0 khi khởi tạo UART
* /
UCTL0 = SWRST; / / Thiết lập lại USART
UCTL0 | = KÝ_TỰ, / / ký tự 8-bit
UTCTL0 | = SSEL0; / / UCLK = ACLK
UBR00 = UART_BAUD & 0xff; / / Cấu hình tốc độ baud
UBR10 = (UART_BAUD>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Nguội" border="0" />

& 0xff;
UMCTL0 = MODULATION_VAL; / / Kích hoạt tính năng điều chế
ME2 | = UTXE0 | URXE0; / / Kích hoạt tính năng UART TXD / RXD
UCTL0 & = ~ SWRST; / / Release USART
IE2 | = URXIE0; / / Kích hoạt tính năng ngắt RX USARTCác ISR để tiếp nhận dữ liệu là như dưới đây:

# Pragma vector = USART0RX_VECTOR
__interrupt UART0_recv_handler void (void)
(
unsigned char rx_data;

/ / Đọc UART nhận được đệm
rx_data = RXBUF0;
)

Trợ giúp khẩn cấp là cần thiết.Thanx trước,
Anand

 
Mã này sẽ tốt.Giả sử bạn đã không quên thiết lập gie hoặc một cái gì đó, bạn có thể đọc các liên kết sau (errata silicon về dịch vụ ISR USART).
http://www.ti.com/cgi-bin/sc/buglist.cgi?bug=US13

 
Nó có bật ra rằng hội đồng quản trị thiết bị phần cứng không hô trợ 38,4 K baud suất.code này hoạt động tốt ở tốc độ baud 19,2 K sau khi thay đổi các giá trị của UART_BAUD và MODULATION_VAL.

Thanx anyways cho giúp.
Anand.

 

Welcome to EDABoard.com

Sponsor

Back
Top