本资源包含Arduino 51和STM32微控制器结合SIM800C模块进行通信编程的相关软件例程和完整源代码,适用于物联网项目开发学习。
SIM800C模块应用Arduino 51单片机 STM32软件例程源码资料合集包括以下内容:
- Arduino例程
- 51单片机测试源码
- STM32测试源码
具体功能实现如下:
- 使用STM32拨打电话,发送短信和进行TCP通信。
- 利用STC89C52与SIM800C模块结合实现拨打电话、发送及接收短信,并通过SMS远程控制开关。
以下是示例代码:
```c
void main(){
Uart_Init();
if (sendCommand(AT\r\n, OK\r\n, 3000, 10) == Success);
else errorLog();
delay_ms(10);
if (sendCommand(AT+CPIN?\r\n, READY, 1000, 10) == Success);
else errorLog();
phone(phoneNumber); //拨打电话
while(1){
}
}
void phone(char *number){
char send_buf[20] = {0};
memset(send_buf, 0, 20);
strcpy(send_buf, ATD);
strcat(send_buf, number);
strcat(send_buf,;\r\n);
if (sendCommand(send_buf, OK\r\n, 10000, 10) == Success);
else errorLog();
}
void errorLog(){
while(1){
if (sendCommand(AT\r\n, OK\r\n, 100, 10) == Success)
soft_reset();
delay_ms(200);
}
}
void soft_reset(void){ //软复位
((void (code *) (void)) 0x0000)();
}
unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry){
unsigned char n;
CLR_Buf();
for(n = 0; n < Retry;n++){
SendString(Command); //发送GPRS命令
Time_Cont = 0;
while(Time_Cont < Timeout) {
delay_ms(100);
Time_Cont += 100;
if(strstr(Rec_Buf, Response)!=NULL){
CLR_Buf();
return Success;
}
}
Time_Cont = 0;
}
CLR_Buf();
return Failure;
}
void delay_ms(unsigned int n){ //延时函数
unsigned int i,j;
for(i=0;i
优质
本项目专注于开发适用于51单片机的ESP8266 WiFi模块驱动程序,旨在简化两者间通信及网络功能实现过程。
51单片机驱动ESP8266模块的代码示例适用于这款流行的WiFi模块。ESP8266因其普及度而被广泛使用。
优质
本固件合集专为ESP8266 WiFi模块设计,包含多种功能增强和优化版本,适用于开发者进行无线通讯、网络控制及IoT项目开发。
8266WIFI模块提供了多种固件选择。
优质
该资源为ESP8266模块WiFi数据透传功能的源代码压缩包,适用于开发基于WiFi的数据传输应用,帮助开发者快速实现无线通信功能。
以下是ESP8266模块发送字符串的代码:
```c
// ESP8266模块发送字符串
bool ESP8266_SendString(FunctionalState enumEnUnvarnishTx, char * pStr, u32 ulStrLength, ENUM_ID_NO_TypeDef ucId)
{
char cStr[20];
bool bRet = false;
if (enumEnUnvarnishTx) {
ESP8266_USART(%s, pStr);
bRet = true;
} else {
if (ucId < 5)
sprintf(cStr, AT+CIPSEND=%d,%d, ucId, ulStrLength + 2);
else
sprintf(cStr, AT+CIPSEND=%d, ulStrLength + 2);
ESP8266_Send_AT_Cmd(cStr, > , 0, 1000);
bRet = ESP8266_Send_AT_Cmd(pStr, SEND OK, 0, 1000);
}
return bRet;
}
```
该函数用于ESP8266模块发送字符串到服务器端。参数`enumEnUnvarnishTx`表示是否使能透传模式,如果已经启用,则直接通过串口发送数据;否则需要先构造并执行AT指令设置传输长度,然后进行实际的数据发送操作。
返回值1代表成功,0则为失败。