完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
MSP430F149的板子与SIM908的板子串口相连。单片机向SIM908发送连接指令AT,应该可以得到回复OK.但是没有回复,确切的说是没有进入接收中断,因为我用interrupt_flag来查看。但是分别单独调试单片机和Sim908时,它们都能够正常发送与接收,波特率是115200,肯定不存在问题。我不清楚问题出在哪里,不知是否有人和我遇到过同样的问题。
#include "io430.h" #include "io430x14x.h" #include "intrinsics.h" #define CPU_F ((double)8000000) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define _NOP(void) __no_operation() #define _EINT(void) __enable_interrupt(void) #define _DINT(void) __disable_interrupt(void) char AT[]={"ATr"}; char RX_Buff[100]={0}; int RX1_Flag=0; int RX0_Flag=0; int Ans_Flag=0; int RX_num=0; int interrupt_flag=0; void int_clk(void) { char i; BCSCTL1&=~XT2OFF; BCSCTL2|=SELM_2+SELS; do { IFG1&=~OFIFG; for(i=0;i<0xFF;i++); } while((IFG1&OFIFG)!=0); } void usart0_init(void) //串口初始化 { U0CTL|=SWRST; U0CTL|=CHAR; U0TCTL|=SSEL1; U0BR0=0x45; U0BR1=0x00; U0MCTL=0xAA; ME1|=UTXE0+URXE0; U0CTL&=~SWRST; IE1|=URXIE0; P3SEL|=BIT4; P3SEL|=BIT5; P3DIR|=BIT4; } void send_byte(char data) { while((IFG1&UTXIFG0)==0); U0TXBUF=data; } void AT_init(void) { for(int k=0;k delay_ms(5000); while(interrupt_flag==0); } #pragma vector=UART0RX_VECTOR __interrupt void USART0_RX (void) { RX_Buff[RX_num]=U0RXBUF; RX_num++; interrupt_flag=1; } int main( void ) { WDTCTL = WDTPW + WDTHOLD; int_clk(); usart0_init(); _EINT(); //send_byte(0x41); // send_byte(0x54); //send_byte(0x0D); // delay_ms(3000); AT_init(); while(1); } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2950个成员聚集在这个小组
加入小组2705 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3037 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2278 浏览 1 评论
4706 浏览 1 评论
2491 浏览 1 评论
971浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3037浏览 2评论
2705浏览 1评论
1094浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-12 01:40 , Processed in 1.220681 second(s), Total 53, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191