您好,希望有人能帮助我。
我尝试将代码从 MSP430F169 获取到 MSP430F2618。
此微控制器的UART逻辑已更改,我用以下代码尝试了它。
我在2618中没有找到TX-Enable,就像在ME2寄存器169中一样。
我的问题是 没有数据来自WFP 3.4 (UCA0TXD)
我还尝试了将ACLK作为源代码,但它不起作用。
曼弗雷德,最佳
#include <io430x26x.h>
#include "in430.h"
#define WDDG() WDTCTL=WDTPW+WDTSSEL+WDTCNTCL;WDTCTL=WDTPW+WDTSSEL
INT TOTX;
主真空()
{
unsigned char sec_cnt;
BCSCTL1 |= DIVA_3; // ACLK = 8MHz / 8 = 2MHz
/*停止监视计时器。 */
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 |= XTS; //高频模式
BCSCTL3 |= LFXT1S1; //频率从3到16 MHz
做
{
IFG1 &=~OFIFG; // Oszillator-Fehler-bit löschen
对于(sec_cnt=0xff; sec_cnt ;--sec_cnt);
} While ( IFG1 & OFIFG ); //当Solange der Oszillator nicht angeschwungen正在进行中时
BCSCTL2 ||(SELM0+SELM1+SELM1+STES);// 11:MCLK = LFXT1CLK,SMCLK = CLK
TBCTL = tassel_1 + MC_2; // SRC=ACLK,连续计数0-FFFF
TBCCTL0 = CCIE; //中断启用
TBCCR0 = 2000; // 2MHz / 2000 = 1ms
UCA0CTL1 = UCSWRST;
UCA0CTL0 = 0;
UCA0CTL1 || UCSSEL1; // SSEL1 = SMCLK
// UCA0CTL1 |= UCRXEIE;
UCA0BR1 = 6;
UCA0BR0 = 0x82; //1666
UCA0MCTL = 0x0c; // UCBRS=6,UCBRF=0,UCOS16=0
P3SEL |= 0x30;
UCA1CTL1 &=(~UCSWRST);
_EINT();
同时(1)
{
WDG ();
IF (!toTX)
{
UCA0TXBUF = 0x55;
TTX = 500;
}
}
}
#pragma vector=TIMERB0_vector
__interrupt void interrupT_TIMERB0_vector (void)
{
TBCCR0 +=2000; //将偏移量添加到TCCR0 x 0.5us
if(tox)--tox;
}