上一主題下一主題
關鍵字
主題 : msp430f149串口通信中斷程序警告問題
級別: 北風工程師

UID: 474133
精華: 0
發帖: 541
威望: 1194 點
學點: 844 點
貢獻: 0 點
好評: 0 點
學幣: 0 個
注冊時間: 2014-07-13
最后登錄: 2014-09-01
樓主  發表于: 2014-08-06 19:12||

msp430f149串口通信中斷程序警告問題

#include <msp430.h> t*{L[c9.Uq  
#include<msp430f149.h> x。SfB[SZ  
#include"intrinsics.h" E C?}iP  
#define CPU_F ((double)8000000)                                     //晶振8MHZ <I+kB^Er  
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))   //ms延時 _jWs(OmJ  
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))//us延時 8fC4 j`!  
#define uchar unsigned char w:&" "'E  
#define uint  unsigned int J2mHPV A3  
#define ulong unsigned long K$"#SZEi  
//串口 aukcO ;oG<  
#define baud           9600                                //設置波特率的大小 -JW~_Q[  
#define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特率計算公式 87 Z[0>  
#define baud_h         (uchar)(baud_setting>>8)            //提取高位 2g.lb&3W  
#define baud_l         (uchar)(baud_setting)               //低位 =|3BkmO  
6g(;2gY  
void shizhong_int()//XT2 8MHZ Y.^L^ "%dF  
{ N5Js.j>z  
uchar i; |z-f 8$  
BCSCTL1 &=~XT2OFF;      //XT2高速晶振****啟 L2}\Ah"[  
BCSCTL2 = SELM_2+SELS;//MCLK為XT2,SMCLK為XT2; 7]=&Q4e4  
E^F"$Z" N  
do z0"t]4s  
{ 6'qkD<  
    IFG1&=~OFIFG;                   //清楚振蕩器錯誤標志 Sj+H{xJi  
    for(i=0;i<100;i++) |OeyPD #  
     //  _NOP(); %( CC  
        ; ZmA}i`  
  } Tz @<hE  
  while((IFG1&OFIFG)!=0);           //如果標志位1,則繼續循環等待 Xp<q`w0I,  
  IFG1&=~OFIFG; ~_THvx1  
} ~7m`p3W@  
M/ 3;-g  
void UART_Init()     //串口0設置 19 5_1?'<  
{ 5Rbl。5。 A  
  U0CTL|=SWRST;               //置位SWRST該位先為1設置串口然后為0,最后設置中斷使能 _4{0He`q  
  U0CTL|=CHAR;                //8位數據模式 ,0為7位,1為8位 7B?Y。B  
  U0TCTL|=SSEL1;              //SMCLK為串口時鐘,0x20,0x00為uclki,0x10為aclk即SSEL0, )CGQ}  
  U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N LdUz;sb  
  U0BR0=baud_l;               //N=UBR+(UxMCTL)/8 26V6Y2X  
  U0MCTL=0x00;                //微調寄存器為0,波特率9600bps tXE/aY*I  
  ME1|=UTXE0;                 //UART1發送使能 pPReo)  
  ME1|=URXE0;                 //UART1接****使能 qe]D4K8`Q3  
  U0CTL&=~SWRST; U[ ]yN.J  
  IE1|=URXIE0;                //接****中斷使能位 HQ-[k$d W4  
u>XXKlW:  
  P3SEL|= BIT4;               //設置IO口為普通I/O模式 ,NO[Piok  
  P3DIR|= BIT4;               //設置IO口方向為輸出 }7PJr/IuF  
  P3SEL|= BIT5; -l[H]BAMXy  
} %bcf% 7  
//發送數據 ZCCCuB  
void send_tbyte(uchar data) [P2>KQ\  
{ GT6; I7  
while((IFG1&UTXIFG0)==0); ]TvMT  
U0TXBUF = data; qq)5)S  
} 8mX!mYO3c  
/* |nMjv]#  
* main.c }Qo]~/  
*/ ,xwiJfG; ]  
k>i88^kPV  
#pragma vector = UART0RX_VECTOR {i>AQ+z61f  
interrupt void UART0_RX_ISR(void) g;l K34{  
{ ; _%zf5;'  
  uchar data=0; T;u;r@R/  
  data=U0RXBUF;                       //接****到的數據存起來 Tzd#!Lvm:,  
  send_tbyte(data);                    //將接****到的數據再發送出去 yY]x' 'K  
} r] /Ej!|  
/* [REH*_  
#pragma vector = UART0RX_VECTOR rtPo)#t  
interrupt void UART0_TX_ISR(void) +2[0q% i  
{ %[XP}L$  
; ximVh}'a  
} +9/K|SB{ $  
*/ .7.G}z1  
void main(void) { &Wy>t8DIK  
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer (N/u@M  
    shizhong_int(); @tT`s^e  
    UART_Init(); W@!qp  
    _EINT(); % jDH{xSMb  
    while(1) ^*jwe^  
    { :1d;jx>  
        ;//send_tbyte(0x32); !\b-Ot(  
    } 2K4Xu9-i:b  
=2q#- ,t  
警告:#2580-D pragma vector = accepts number :@(1~Hm  
是在CCS5.5編譯的,結果中斷不運行,求大神幫幫忙
此帖懸賞結束
最佳答案: 1 學點
最佳答案獲得者: 慕容紫英
級別: 北風資深工程師


UID: 472421
精華: 0
發帖: 1405
威望: 1631 點
學點: 64 點
貢獻: 23 點
好評: 0 點
學幣: 95 個
注冊時間: 2014-07-09
最后登錄: 2018-07-09
沙發(1樓)  發表于: 2014-08-06 19:14||

C/C++ code NS`hXf  
ohyq/u+y~A  
#include <msp430.h> bV2a2#kj  
#include<msp430f149.h> Rr CG(Bh  
#include"intrinsics.h" 0F![<5X  
#define CPU_F ((double)8000000)                                     //晶振8MHZ N}NKQ]=  
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))   //ms延時 。>[l@x"  
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))//us延時 qN' 3{jiPL  
#define uchar unsigned char 60n P'xfR  
#define uint  unsigned int fJ5mKN  
#define ulong unsigned long }:{ @nP  
//串口 dZf1iFCP  
#define baud           9600                                //設置波特率的大小 M=ag\1S&ZF  
#define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特率計算公式 O/ItN5B ;  
#define baud_h         (uchar)(baud_setting>>8)            //提取高位 1,$"'lKwt  
#define baud_l         (uchar)(baud_setting)               //低位 Pw]r&)I`y[  
M=95E$6  
void shizhong_int()//XT2 8MHZ lc~c=17  
{ 4VeT]`C^h  
uchar i; b&4JHyleF  
BCSCTL1 &=~XT2OFF;   //XT2高速晶振****啟 40`Qsv0#  
BCSCTL2 = SELM_2+SELS;//MCLK為XT2,SMCLK為XT2; 5bXpj86mY  
oH v.EO  
  do 3]lq#p:  
  { Yq WNp  
     IFG1&=~OFIFG;                   //清楚振蕩器錯誤標志 0g=vMLi  
    for(i=0;i<100;i++) ;r6YIS4@  
      //  _NOP(); GhcH"D%-  
      ; |Rx+2`6Dp  
   } M;3q.0MU  
   while((IFG1&OFIFG)!=0);           //如果標志位1,則繼續循環等待 aZ{l6  
  IFG1&=~OFIFG; `W_&^>yl  
} cV@^<  
ujBm"p_|  
void UART_Init() //串口0設置 .mqMzV  
{ :8}Qt^p  
   U0CTL|=SWRST;               //置位SWRST該位先為1設置串口然后為0,最后設置中斷使能 6|n3Q$p  
  U0CTL|=CHAR;                //8位數據模式 ,0為7位,1為8位 ZrNH:Z:5  
  U0TCTL|=SSEL1;              //SMCLK為串口時鐘,0x20,0x00為uclki,0x10為aclk即SSEL0, 3*j1v:x`  
   U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N h:C:opa-=  
   U0BR0=baud_l;               //N=UBR+(UxMCTL)/8 aQY.96yo  
   U0MCTL=0x00;                //微調寄存器為0,波特率9600bps >c Tt2v  
   ME1|=UTXE0;                 //UART1發送使能 {6Nbar@3  
  ME1|=URXE0;                 //UART1接****使能 =MM+(mD  
  U0CTL&=~SWRST; TxN+-< f  
   IE1|=URXIE0;                //接****中斷使能位 ,|?#+O{  
F=*t]X[z}  
  P3SEL|= BIT4;               //設置IO口為普通I/O模式 >0 o[@gJl  
  P3DIR|= BIT4;               //設置IO口方向為輸出 +8 \?7,FY  
  P3SEL|= BIT5; g[@0H=  
} ,aP5)ZN-  
//發送數據 ,-k?"|tQ  
void send_tbyte(uchar data) 3xP<J)S0  
{ H=WB6~8)  
while((IFG1&UTXIFG0)==0); 0;=]MEk?  
U0TXBUF = data; z52F-<  
} yHs9J1S f  
/* Xm(#O1Vm(l  
  * main.c /FW$)w2{j  
  */ )w&|VvM )L  
d_Zj W  
#pragma vector = UART0RX_VECTOR rAW7Zp~KK  
interrupt void UART0_RX_ISR(void) S ;8=+I,  
{ + >:}   
   uchar data=0; yU7XX+cB7  
   data=U0RXBUF;                       //接****到的數據存起來 =Ov,7<8o  
  send_tbyte(data);                    //將接****到的數據再發送出去 'aD"v>  
} _Fv6S}~Q  
/* aWLA6A+C&  
#pragma vector = UART0RX_VECTOR ).u>%4=6  
interrupt void UART0_TX_ISR(void) @{3_7  
{ 3&c'3y:b  
; (o{x*';i4  
} D(TfW   
*/ p`U#  
void main(void) { Tb:'M:dM"  
     WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer k@n L(2  
     shizhong_int(); I7|a,Q^f  
     UART_Init(); &lzCRRnvt  
     _EINT(); 9M|#X1r{%{  
     while(1) $SFreyI;Uf  
     { r,vSDHb`j  
      ;//send_tbyte(0x32); r <P?F  
     }
最佳答案獎勵: (+1) 學點
級別: 北風工程師


UID: 474139
精華: 0
發帖: 548
威望: 1152 點
學點: 750 點
貢獻: 0 點
好評: 0 點
學幣: 0 個
注冊時間: 2014-07-13
最后登錄: 2014-08-25
板凳(2樓)  發表于: 2014-08-06 19:13||

不識別: UART0RX_VECTOR,可我沒寫錯啊
級別: 北風工程師

UID: 474135
精華: 0
發帖: 543
威望: 1108 點
學點: 666 點
貢獻: 0 點
好評: 0 點
學幣: 0 個
注冊時間: 2014-07-13
最后登錄: 2014-08-25
地板(3樓)  發表于: 2014-08-06 19:14||

有沒有可能是CCS設置上,MCU的選型選得不對,不支持那個accepts number
北京28预测 吉林快3 上海快3 电玩棋牌 赖子棋牌 19年点击网赚 甘肃快3 2019最新网赚商机 2019有什么网赚项目 重庆百变王牌