通才玩家 通才玩家
人如其名,通才玩家
关注数: 95 粉丝数: 270 发帖数: 4,027 关注贴吧数: 122
mysql安装出现error Nr.1045 我们在windows下安装mysql时会出现Access denied for user 'root'@localhost'(using password:No)的问题,这个问题是因为你的机器上之前安装过mysql,或者这 一次安装配置了新密码,进入应用的最后一步时候由于某些原因卡出了或者由于服务未启动等原因导致无法配置成功,最终结果是,配置未成功,密码设置已经保存 进去了。这样我们调整好了服务等原因后,进行重新配置的时候,会发现在设置密码的时候,多了一个旧密码输入框。其实这也没什么,在密码知道的情况下,输入 旧密码重新设置密码并不难,而问题关键在于即使旧密码正确,你依旧无法完成配置,在最后一个环节密码认证的时候又出错了,出错原因是密码问题,提示旧密码 不对。解决办法: 1.管理工具---服务里面停止Mysql服务。 2.控制面板---卸载Mysql,删除C:\Program Files\MySQL目录. 3.这是最关键一步,只做前面两步,密码还是修改不了,因为MySQL 还有文件,也就是在C:\Documents and Settings\All Users\Application Data里面的MySQL文件夹,这个文件没有清除是MySQL重装出现旧密码的根源所在。于是删除MySQL文件夹。 4.检查C:\WINDOWS目录下是否有my.ini文件,将其删除 5.注册表里的HEKY_LOCAL_MACHINE,SOFTWARE,MYSQL删除 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除   HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录删除 完成以上步骤,就可以重新安装MySQL并且进行全新配置了
收发短信TC35i #include <reg52.h>; #include <tc35.h>; #define uint unsigned int #define uchar unsigned char /*********************************************** ***********************************************/ sbit KEY1=P3^2; sbit D1=P1^0; sbit D2=P1^1; sbit D3=P1^2; sbit D4=P1^3; sbit D5=P1^4; sbit D6=P1^5; sbit D7=P1^6; uchar code TC_AT[]=&quot;AT&quot;;//发送at指令 uchar code TC_CMGF[]=&quot;AT+CMGF=1&quot;; //设置成文本模式 uchar code TC_CSCS[]=&quot;AT+CSCS=GSM&quot;;//设置为GSM字符集 uchar code TC_CSMP[]=&quot;AT+CSMP=17,167,0,0&quot;; //设置TEXT模式参数 uchar code TC_CMGS[]=&quot;AT+CMGS=13842001511&quot;;//发送电话号码 uchar code TC_Text[]=&quot;Hello world9999!!&quot;; //发送个内容 void Sent_AT(void); //发送AT void Sent_CMGF(void); void Sent_CSMP(void); void Sent_CSCS(void); void Sent_CMGS(void); void Sent_Text(void); void GSM_SentText(void);//发送英文短信 void delay(uint z) { uint i,j; for(i=0;i&lt;z;i++) for(j=0;j&lt;110;j++); } void Max232Init() { TMOD=0X20;//TIME:time1,mode2,8-bit reload TH1=0XFD; // //9600 bds at 11.0592 TL1=0XFD; TR1=1; //启动定时器1 SCON=0X50;//高四位分别为SM0,SM1,SM2,REN,工作方式1,8位UART SM2=1; REN=1; ES=1; //允许串口中断 EA=1; //开总中断 } void Max232SentChar(uchar ch) { ES=0; SBUF=ch; //发送一字节数据到数据缓冲区 while(!TI); //当接收到数据发生中断 TI=0; //软件置0 ES=1; } void Max232SentString(uchar *DData) { while(*DData!='\0') { Max232SentChar(*DData); DData++; } } void Sent_AT(void) { Max232SentString(TC_AT);//发送AT Max232SentChar(0X0D); D1=0; delay(1000); } void Sent_CMGF(void) { Max232SentString(TC_CMGF);//发送AT+CMGF=1 Max232SentChar(0X0D); D2=0; } void Sent_CSCS(void) { Max232SentString(TC_CSCS);//发送AT+CSCS=GSM Max232SentChar(0X0D); D3=0; } void Sent_CSMP(void) { Max232SentString(TC_CSMP);//发送AT+CSMP=17,167,0,0 Max232SentChar(0X0D); D4=0; } void Sent_CMGS(void) { Max232SentString(TC_CMGS); //发送AT+CMGS=15007845767 Max232SentChar(0X0D); D5=0; } void Sent_Text(void) { Max232SentString(TC_Text); //发送Hello world!! Max232SentChar(0X1a); Max232SentChar(0X0D); D6=0; } void GSM_SentText(void) { Sent_AT(); delay(1000); Sent_CMGF(); delay(1000); Sent_CSCS(); delay(1000); Sent_CSMP(); delay(1000); Sent_CMGS(); delay(1000); Sent_Text(); delay(1000); } void main() { Max232Init(); while(1) {if(KEY1==0) { delay(100); while(KEY1==0) { delay(100); GSM_SentText();//发送短信 D7=0; } } } } void EXT() interrupt 4 { ES=0; if(TI) { TI=0; } if(RI)//如果接收到数据产生中断 { RI=0; } ES=1; }
串口寄存器的定义域含义。 将十六进制转换为二进制为pcon=0000 0000;scon=0101 0000.这些零和一具体代表什么意思,参看下面单片机中对这俩个寄存器每一位的定义: PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下: PCON电源管理寄存器结构: PCON D7 D6 D5 D4 D3 D2 D1 D0 位符号 SMOD - - - GF1 GF0 PD IDL 在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。 各位的定义: SMOD:该位与串口通信有关。 SMOD=0; 串口方式1,2,3时,波特率正常。 SMOD=1; 串口方式1,2,3时,波特率加倍。 GF1,GF0:两个通用工作标志位,用户可以自由使用。 PD:掉电模式设定位。 PD=0 单片机处于正常工作状态。 PD=1 单片机进入掉电(Power Down)模式 ,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。 IDL:空闲模式设定位。 IDL=0 单片机处于正常工作状态。 IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。 SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下: SCON寄存器结构 SCON D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址 9FH 9EH 8DH 9CH 9BH 9AH 99H 98H 各控制位功能介绍如下: (1).SM0、SM1:串行口工作方式控制位。 SM0,SM1 工作方式 00 方式0 01 方式1 10 方式2 11 方式3 (2).SM2:多机通信控制位。 多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。 工作于方式0时,SM2必须为0。 (3).REN:允许接收位。 REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。 (4).TB8:发送接收数据位8。 在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。 (5).RB8:接收数据位8。 在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。 (6).TI:发送中断标志位。 可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。 (7).RI:接收中断标志位。 可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。 在串口中断处理时,TI,RI都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要ES=0,以防止中断出现。
AT指令 AT命令解释: 一, AT命令解释: 1,常用操作 1.1 AT 命令解释:检测Module与串口是否连通,能否接收AT命令; 命令格式:AT<CR> 命令返回:OK (与串口通信正常)(无返回,与串口通信未连通) 测试结果:AT OK 1.2 AT+CSQ 命令解释:检查网络信号强度和SIM卡情况 命令格式:AT+CSQ<CR> 命令返回:+CSQ: **,## 其中**应在10到31之间,数值越大表明信号质量越好,##应为99. 否则应检查天线或SIM卡是否正确安装 测试结果:AT+CSQ<CR> +CSQ: 31, 99 信号强度值会有少许变化,用手遮住天线,信号强度值会下降(大致在26左右). 1.3 ATZ 命令解释:恢复原厂设置 命令格式:ATZ<CR> 命令返回:OK 1.4 AT+CGMR 命令解释:查询模块版本; 命令格式:AT+CGMR<CR> 命令返回: <revision > +CMEERROR <err> 测试结果:AT+CGMR<CR> R4A021 CXC1122528 OK 解释:模块版本号为R4A021 1.5 AT+IPR 命令解释:修改串口1波特率; 命令格式:AT+IPR=<value ><CR> 命令返回: ERROR OK 测试结果:AT+IPR=19200<CR> OK 注意:串口波特率修改为19200后要把串口调试工具的波特率设为相应波特 率后模块才会有返回 1.6 AT&W 命令解释:保存模块设置; 命令格式:AT&W<CR> 命令返回: OK ERROR(保存不成功) 测试结果:AT&W <CR> OK 2,通话操作 2.1ATD 命令解释:拨打电话 命令格式:ATD**********;<CR>(****为电话号码) 命令返回:OK NO DIAL TONE(没有拨号音) NO CARRIER(无载波) 测试结果:a. ATD13510090403;<CR> OK 呼叫成功; b. ATD13510090403;<CR> NO DIAL TONE 天线未接好,接触不良; c. ATD13510090403<CR> NO CARRIER 命令错误,缺{;}; 2.2RING 命令解释:有电话呼入 命令格式: 命令返回:无 2.3ATA 命令解释:摘机 命令格式:ATA<CR> 命令返回:OK 测试结果:RING RING ATA<CR> OK 接通电话; 2.4ATH 命令解释:挂机 命令格式:ATH<CR> 命令返回:OK 测试结果:ATH<CR> OK 电话挂断(通话过程中);
CT35I发程序 #include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int /*---------------------------------------------------------------*/ uchar tmp; //单片机向电脑发送的数据 uchar code str_AT[]={"AT\r\n"}; uchar code str1[]={"AT+CMGF=0\r"}; uchar code str2[]={"AT+CMGS=27\r"}; uchar code str3[]={"0891683108603305F011000D91688167396617F60008A70C606D559CFF0C6210529FFF01"}; void send_AT(void);//发送"AT\r\n" void send_str1(void); //发送字符串 void send_str2(void); void send_str3(void); void send_char(uchar txd); //发送字符 /*---------------------------------------------------------------*/ init_chuankou() { EA=0; //关总中断 ET1=0;//禁止中断1 SCON=0X50; TMOD=0X20; TH1=0XFD; TL1=0XFD;//波特率为9600 TR1=1; } delay_Xms(uint t) { uint i,j; for(i=t;i>0;i--) for(j=113;j>0;j--); } sendMessage()//发短信 { TI = 0; send_AT(); //发送"AT\r\n" delay_Xms(1000); //发完"AT"后的延时 send_str1();//发送"AT+CMGF=0\r"PDU模式 delay_Xms(1000); //发完"AT"后的延时 send_str2();//发送"AT+CMGS=27\r" delay_Xms(1000); send_str3();//发送"message" send_char(0x1A); //发送0x1A 16进制 while(!TI); //等待上一数据发送完成 TI = 0; //软件清除中断标志 } void main() { init_chuankou(); delay_Xms(1000); delay_Xms(1000); delay_Xms(1000); delay_Xms(1000); //延时等待GSM启动完毕 sendMessage();//发短信(1次) while(1); } /*---------------------------------------------------------------*/ //传送一个字符 void send_char(unsigned char txd) { SBUF = txd; //送到数据缓冲区 while(!TI); //等待上一数据发送完成 TI = 0; //软件清除中断标志 } /*---------------------------------------------------------------*/ void send_AT(void)//发送"AT\r\n" { unsigned char i=0; while(str_AT[i]!='\0') //判断字符串是否发送完成 { send_char(str_AT[i]); //发送字符 i++; //指向下一个字符 } } void send_str1(void) //发送"AT+CMGF=0" { unsigned char i=0; while(str1[i]!='\0') //判断字符串是否发送完成 { send_char(str1[i]); //发送字符 i++; //指向下一个字符 } } void send_str2(void) //发送"AT+CMGs=27\r" { unsigned char i=0; while(str2[i]!='\0') //判断字符串是否发送完成 { send_char(str2[i]); //发送字符 i++; //指向下一个字符 } } void send_str3(void) //发送"message" { unsigned char i=0; while(str3[i]!='\0') //判断字符串是否发送完成 { send_char(str3[i]); //发送字符 i++; //指向下一个字符 } }
1 下一页