資源簡(jiǎn)介
STM32+MQTT+SIM800使用AT指令實(shí)現(xiàn);
通過(guò)自建服務(wù)器測(cè)試完成,支持連接、訂閱、發(fā)布、心跳保持;
全部使用AT指令控制;
代碼片段和文件信息
#include?“gpio.h“
#include?“MQTTPacket.h“
u8?ch_print=OS_UART2; //printf選擇串口
u32?Sys_addr; //設(shè)備地址
const?char*?MQTT_sub_names[]?= //預(yù)存主題信息
{
“ask“?“update““set“?“ping“
};
const?char*?MQTT_qusn_names[]?= //預(yù)存內(nèi)容信息
{
“CH1PV“?“CH2PV““CH3PV“?“CH4PV“
};
/**********************************
?預(yù)定義內(nèi)容GPRS模組數(shù)據(jù)部分
***********************************/
u8?SIM900_sys;
u8?SIM900_count;
u8?SIM900_rx_en;
u8?SIM900_rx_ok;
u8?SIM900_rssi;
u8?SIM900_ccid[21];
/**********************************
?預(yù)定義內(nèi)容定時(shí)器3數(shù)據(jù)部分
***********************************/
u8?Timer3_S1cut; //定時(shí)器累加
u8?Timer3_count; //定時(shí)器累加
u8?Timer3_fg1s; //定時(shí)器心跳累加
u8?Timer3_cmd_cut; //發(fā)送命令累加
/**********************************
?預(yù)定義內(nèi)容串口1數(shù)據(jù)部分
***********************************/
u8 S1_receive_flag; //串口1接受完成標(biāo)志位
u8 S1_sendend_flag; //串口1發(fā)送完成標(biāo)志位
u8??Si_rec_timeout; //串口1超時(shí)
u8??S1TData[300]; //發(fā)送緩沖區(qū)
u8??S1RData[800]; //接收緩沖區(qū)
u16 S1_Rx_Len; //接收長(zhǎng)度
/**********************************
?預(yù)定義內(nèi)容MQTT數(shù)據(jù)部分
***********************************/
u8??MQTT_login; //MQTT連接狀態(tài)
u8??MQTT_heart_flag; //MQTT心跳發(fā)送標(biāo)志
u8??MQTT_rxok_flag; //MQTT收包完成標(biāo)識(shí)
u8??MQTT_suback; //MQTT訂閱標(biāo)志
u8??MQTT_rxsub[50]; //MQTT接收主題
u8??MQTT_rxbuf[600]; //MQTT接收內(nèi)容
u16?MQTT_packid=1; //MQTT報(bào)文標(biāo)識(shí)符
/**********************************
?預(yù)定義內(nèi)容串口3數(shù)據(jù)部分
***********************************/
u8 S3_recstart_flag; //串口3接受開(kāi)始標(biāo)志位
u8 S3_receive_flag; //串口3接受完成標(biāo)志位
u8 S3_send_flag; //串口3發(fā)送標(biāo)志位
u8??S3_time_cunt; //串口3超時(shí)
u8??S3_error_cnt; //串口3錯(cuò)誤計(jì)數(shù)
u8??S3TData[10]; //發(fā)送緩沖區(qū)
u8??S3RData[10]; //接收緩沖區(qū)
u8 S3_Rx_Len; //接收長(zhǎng)度
/**********************************
?預(yù)定義內(nèi)容外設(shè)數(shù)據(jù)部分
***********************************/
u16 Device_i; //外設(shè)數(shù)據(jù)
#if?0
#define?EN485 PBout(1) //DS0
//LED端口定義
#define?LED1 PBout(5) //DS0
#define?LED2 PBout(4) //DS0
//GSM模組端口定義
#define?GSM_PWR PAout(15) //DS0
#define?GSM_RST PBout(3) //DS0
#endif
//初始化獨(dú)立看門狗
//prer:分頻數(shù):0~7(只有低3位有效!)
//分頻因子=4*2^prer.但最大值只能是256!
//rlr:重裝載寄存器值:低11位有效.
//時(shí)間計(jì)算(大概):Tout=((4*2^prer)*rlr)/40?(ms).
void?IWDG_Init(u8?preru16?rlr)?
{
IWDG->KR=0X5555; //使能對(duì)IWDG->PR和IWDG->RLR的寫 ? ??
?? IWDG->PR=prer;?? //設(shè)置分頻系數(shù)???
?? IWDG->RLR=rlr;?? //從加載寄存器?IWDG->RLR??
IWDG->KR=0XAAAA; //reload ???
?? IWDG->KR=0XCCCC; //使能看門狗
}
//喂獨(dú)立看門狗
void?IWDG_Feed(void)
{
IWDG->KR=0XAAAA; //reload ???
}
void?gpio_init(void)
{
RCC->APB2ENR|=1<<0; //關(guān)閉JTAG功能
AFIO->MAPR&=0xF8FFFFFF;
AFIO->MAPR|=1<<25;
RCC->APB2ENR|=1<<3; //使能PORTB時(shí)鐘
RCC->APB2ENR|=1<<2; //使能PORTA時(shí)鐘
GPIOA->CRH&=0x0FFFFFFF; //PA高端口初始化
GPIOA->CRH|=0x70000000; //1-GSM_PWR
GPIOB->CRH&=0xFFF0FFFF; //PB高端口初始化
GPIOB->CRH|=0x00070000; //1-GSM_DRT?
GPIOB->CRL&=0xF0000F0F; //PB低端口初始化
GPIOB->CRL|=0x04337030; //2-LED?1-GMS_RST?1-EN_485
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3475??2018-09-21?10:31??HARDWARE\gpio.c
?????文件???????2537??2018-09-21?10:31??HARDWARE\gpio.h
?????文件?????235814??2017-11-22?08:57??OBJ\can.crf
?????文件????????506??2017-11-22?08:57??OBJ\can.d
?????文件?????265668??2017-11-22?08:57??OBJ\can.o
?????文件????????700??2018-09-21?10:19??OBJ\crc.crf
?????文件?????????62??2018-09-21?10:19??OBJ\crc.d
?????文件??????10332??2018-09-21?10:19??OBJ\crc.o
?????文件?????223238??2018-09-21?10:19??OBJ\delay.crf
?????文件????????324??2018-09-21?10:19??OBJ\delay.d
?????文件?????237548??2018-09-21?10:19??OBJ\delay.o
?????文件?????244912??2018-09-21?10:32??OBJ\device.crf
?????文件???????1131??2018-09-21?10:32??OBJ\device.d
?????文件?????257372??2018-09-21?10:32??OBJ\device.o
?????文件?????238639??2018-01-10?14:59??OBJ\display.crf
?????文件????????645??2018-01-10?14:59??OBJ\display.d
?????文件?????270516??2018-01-10?14:59??OBJ\display.o
?????文件?????243644??2018-09-21?10:32??OBJ\eeprom.crf
?????文件????????903??2018-09-21?10:32??OBJ\eeprom.d
?????文件?????263920??2018-09-21?10:32??OBJ\eeprom.o
?????文件?????????19??2018-09-19?10:35??OBJ\ExtDll.iex
?????文件?????241304??2018-09-21?10:32??OBJ\gpio.crf
?????文件????????761??2018-09-21?10:32??OBJ\gpio.d
?????文件?????252012??2018-09-21?10:32??OBJ\gpio.o
?????文件?????237902??2018-01-15?08:59??OBJ\key.crf
?????文件????????649??2018-01-15?08:59??OBJ\key.d
?????文件?????255652??2018-01-15?08:59??OBJ\key.o
?????文件?????229492??2018-01-10?14:59??OBJ\lcd.crf
?????文件????????440??2018-01-10?14:59??OBJ\lcd.d
?????文件?????258964??2018-01-10?14:59??OBJ\lcd.o
............此處省略170個(gè)文件信息
評(píng)論
共有 條評(píng)論