本帖最后由 曳影zsg 于 2016-5-25 01:15 编辑
C:\Users\zhangsg\Desktop\1
最近调试ES8266WiFi模块,发送AT指令,编译时报错Error[Pe018]: expected a ")" ,错误的那一行是“Uart1Sends("AT+CWJAP="Tenda_316","14911123649"\n");”,注释掉这行程序后就没问题,请问这是怎么回事?该怎么改?O(∩_∩)O谢谢
原代码我贴在下面:
#include<msp430x14x.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/*********************时钟初始化***************/
void Int_clk()
{
uchar i;
BCSCTL1 &= ~XT2OFF; //打开XT振荡器
BCSCTL2 |= SELM1 + SELS; //MCLK=8M ,SMCLK=1M
do
{
IFG1 &= ~OFIFG; //清除振荡错误标志
for(i=0;i<100;i++){
//等待延时
}
}
while((IFG1 & OFIFG) != 0); //如果标志为1,则继续循环等待
IFG1 &= ~OFIFG;
}
/*************串口初始化:***************/
void Init_UART1(void)
{
P6DIR |= BIT2;P6OUT |= BIT2; // 关电平转换
P3SEL |= 0x30; // P3.4,5选择为UART收发端口
UCTL0 |= SWRST;
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL1; // select SMCLK as CLK (要得到8M)
UBR00=0X45; //确定波特率的整数部分 8M/115200=69.44
UBR10=0X00;
UMCTL0=0x71; // 确定波特率的小数部分
ME1 |= UTXE0 + URXE0; // 使能USART0收发
UCTL0 &= ~SWRST; // 初始化UART0状态机
IE1 |= URXIE0; // 使能接收中断
return;
}
/**************************************************/
//延时函数大概是1s钟.
void DelaySec(int sec)
{
uint i,j= 0;
for(i=0; i<sec; i++)
for(j=0; j<65535; j++);
}
/*****************串口1 发送字符串************************/
void Uart1Sends(uchar *str)
{
while(*str != '\0')
{
while (!(IFG1 & UTXIFG0)); // TX缓存空闲?
TXBUF0 = *str++; // 发送数据
}
while (!(IFG1 & UTXIFG0));
IFG1|=UTXIFG0; //中断挂起
}
void AT_WIFI()
{
Uart1Sends("AT+RST\n"); //初始化
DelaySec(3);//延时3秒
Uart1Sends("AT+CWMODE=3\n");
DelaySec(3);//延时3秒
Uart1Sends("AT+CWJAP="Tenda_316","14911123649"\n");
DelaySec(3);//延时3秒
}
void main()
{
WDTCTL = WDTPW + WDTHOLD;
Int_clk();
Init_UART1();
AT_WIFI();
}
|