有两个msp430f147进行异步通信。一个发送,一个接收。发送是不断在发65,接收是把65存到buffer区域的一个固定位置(0200)。发现接收到的东西总是不对。。。下面是代码。
发送程序:
#include "msp430.h" ; #define controlled include file
NAME main ; module name
PUBLIC main ; make the main label vissible
; outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
RSEG CSTACK ; pre-declaration of segment
RSEG CODE ; place program in 'CODE' segment
init: MOV #SFE(CSTACK), SP ; set up stack
main: NOP ; main program
MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
CALL #UART0_INIT
MOV #65, R4
Tchk: BIT.B #UTXIFG0,&IFG1
JZ Tchk
MOV.B R4,&U0TXBUF
CALL #delay
JMP Tchk
delay: PUSH SR
MOV #00FFh, R5
ww: DEC R5
JNZ ww
POP SR
RET
UART0_INIT:
BIS.B #SWRST, &U0CTL
BIS.B #BIT4+BIT5,&P3SEL
;BIS.B #SPB+CHAR,&U0CTL
BIS.B #PENA+PEV+SPB+CHAR,&U0CTL
BIC.B #BIT5,&U0TCTL
BIS.B #BIT4,&U0TCTL
BIS.B #URXEIE,&U0RCTL
MOV.B #03h, &U0BR0
MOV.B #00h, &U0BR1
MOV.B #13h, &U0MCTL
BIS.B #UTXE0+URXE0,&ME1
BIC.B #SWRST, &U0CTL
RET
END
此帖出自
小平头技术问答
一周热门 更多>