-
你在 while (1)
{
__bis_SR_register(LPM3_bits | GIE); // LPM3, ADC12_ISR will force exit
__no_operation(); // For debugger
}
循环的第一句实现IO反转,试试是不是真的没进中断
-
AD的时钟用的哪一个?你先用LPM0模式试试吧,LMP3可能不行
-
楼主在中断的第一句前加上_BIC_SR_IRQ(LPM3_bits)试试;进入中断第一句执行 _BIC_SR_IRQ(LPM3_bits);
-
1.检查驱动是否正确安装 2.检查工程配置是否选型设置正确 3.烧录方式选择
-
我勒个去
-
听说ATMEL要被收购了
-
陨落
-
0.0.0.0.0.0.0.0.0.0.0.0
-
有人知道怎么翻译吗?
-
有人知道怎么翻译吗?
-
:)下来看看
-
有人知道怎么翻译吗?
-
从msp430f415上读出来的代码的hex文件,怎么翻译成代码?
-
前排。
-
求大神给个便捷的翻译方法
-
对着看吧
-
#include "msp430g2553.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = CALBC1_1MHZ; // Set DCO
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
UCA0BR1 = 0; // 1MHz 9600
UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
}
// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
while (!(IFG2&UCA0TXIFG)); // 发送中断标志检测,每次发送后都要检测
//直到发送完成,才可发送下个字节的数据
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
} 复制代码
-
#include "msp430g2553.h"
#define uchar unsigned char
#define uint unsigned int
/*****系统时钟初始化*****/
void Clock_Init()
{
BCSCTL2 |= SELS;
}
/*****MSP430内部看门狗初始化*****/
void WDT_Init()
{
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
}
/*****串口设置*****/
void UART_Init()
{
P1SEL = BIT1 + BIT2;//P1.1 P1.2设置为TXD,RXD
P1SEL2 = BIT1 + BIT2;
UCA0CTL1 |= UCSWRST;//复位UART,并设置串口
UCA0CTL1 |= UCSSEL_2;//选择串口时钟
UCA0CTL0 &= (~UC7BIT);//设置字符长度为8位
// UCA0BR0 = 0x0d;//设置波特率,32768HZ/2400
UCA0BR0 = 0x06;//设置波特率,1.048576MHZ/9600
UCA0BR1 = 0;
// UCA0MCTL = UCBRS1 + UCBRS2 + UCBRF0;
UCA0MCTL = UCBRS2 + UCBRF3 + UCOS16;
UCA0CTL1 &= (~UCSWRST);//串口设置完毕,在UCSWRST=1时设置串口
UC0IE |= UCA0TXIE + UCA0RXIE;//使能接收和发送中断
}
/*****串口发送数据函数*****/
void Send_Byte(uchar data)
{
while(IFG2 & UCA0TXIFG == 0);//发送寄存器空的时候发送数据
UCA0TXBUF = data;
}
/*****处理来自串口的接收中断*****/
#pragma vector = USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
uchar data = 0;
data = UCA0RXBUF;//接收到的数据存起来
Send_Byte(data);//将接收到的数据再发送出去
}
/*****处理来自串口的发送中断*****/
#pragma vector = USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
{
}
/*****主函数*****/
int main( void )
{
WDT_Init();//看门狗初始化
// Clock_Init();//系统时钟初始化
UART_Init();//串口初始化
_EINT();//开中断
while(1);
}
复制代码
希望可以帮到你!
-
仿真器硬件固件版本和软件版本是不是兼容的?
-
huaiqiao 发表于 2015-8-11 12:40
对,把工程丢上来,我在win7 32位的系统下。iar中试了下,也报错。
对,win7 32位系统,我无奈只能改为用小数运算了。