初级会员
- 积分
- 56
- 金钱
- 56
- 注册时间
- 2011-9-21
- 在线时间
- 0 小时
|
使用的主控是MSP430F5529,短信模块是用的原子的GSM模块,12V1A供电,只接了TXD、RXD和GND,多次测试发现,每次运行,单片机发送AT指令,GSM没有任何应答,但是当用串口调试助手发送任意AT指令后,单片机发送的命令GSM模块就有回复了,好像是GSM模块需要用USB转串口来唤醒,然后单片机发的命令才能识别。在“唤醒”的情况下,单片机发短信等都没问题。现在比较疑惑,为什么需要USB转串口线发送AT命令之后,GSM模块才能识别单片机的AT指令。
程序是没问题的,唯一比较有问题的可能是串口初始化,但是USB转串口任意发AT命令之后,运行单片机程序一切都正常的。。。怎么回事呢,求解各位
MSP430 串口的初始化程序:
 4SEL |= BIT5 + BIT4; // P4.4,5 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL0 = 0x00;
UCA1CTL1 = UCSSEL_2 + UCSWRST; // Use SMCLK, keep RESET
UCA1BR0 = 8; // 1M/115200
UCA1BR1 = 0; // 查表所得
UCA1MCTL = UCBRS_6 + UCBRF_0;
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
sim900a_send_cmd(AT_CNMI,(char*)USART_TX_BUF,(const char*)"0"); //AT+CNMI=3,2,0,0,0
delay_ms(200);
sim900a_send_cmd(AT_CMGF,(char*)USART_TX_BUF,(const char*)"1"); //设置文本格式:AT+CMGF=1
delay_ms(200);
|
|