总结:首先,这个库是基于编译的,在其他内核中也支持使用串口和模块通信。 如果您想使用它,请将文件添加到您的项目中并在头文件中引用它。 此外,模块复位操作必须在外部实现。 通常,引脚必须被拉高一段时间才能指定复位功能。 以下四个示例是用于实现自制对接的库。
1.说明
该库是基于STM32F407编译的。 它还受到其他 CortexM4 内核的支持,并使用串行端口与 EC20 模块进行通信。
该库包含两个文件:ec20_mqtt.h 和 ec20_mqtt.lib。 如果您想使用它,可以通过将 lib 文件添加到项目中来引用头文件中的 ec20_mqtt.h。
下载:https://gitee.com/eiri_jackmaster/ec20_mqtt_cm4-lib
功能
创建 mqtt 客户端并连接到服务器提供订阅、发布、取消订阅、断开连接、获取imei号等API接口。 /*! --------------[ k4]-- ]-------------[k4 ]--[ k4]-------------[ k4]---------------- --- ]------- *//*! 公共函数原型 */ EC20_status EC20_initialize(void); EC20_status EC20_mqttClientCreate(uint8_t pClientID,char* pIPv4, uint32_t pPort);EC20_status EC20_mqttClientConnectServer(uint8_t pClientID, char* pClientIDStr,char* pName, char* pPswd); Subscribe(uint8_t pClientID, char* pTopic, u int8_t pQos ) ;EC20_status EC20_mqttClientUnSubscribe(uint8_t pClientID, char* pTopic);EC20_status EC20_mqttClientPublish(uint8_t pClientID, char* pTopic, uint8_t pQos, _t pRetain, uint8_t *pData, uint32_t pSize);EC20_status EC 20_mqttClient DisConnectServer(uint8_t pClientID);extern void EC20_moduleHardReset(void) ;size_t EC20_getIMEI(char *pIMEIBuffer); 3.移植
只需在头文件中指定相应的串口操作函数和基本延迟(以毫秒为单位)即可。 此外,EC20模块的复位操作必须在外部实现。 通常,第一个引脚被拉高一段时间。 复位函数必须指定函数 void EC20_moduleHardReset(void)。
/*! 可移植性的宏定义 *//*! ec20 uart 默认 115200 8 N 1 */#define EC20_SENDDATA(a,b) USART2_sendData(a,b) /*! uart 重新定义 */#define EC20_SENDSTR(a) USART2_sendString(a)#define EC20_RXFLAG usart2Rx.flag # EC20_RXBUFF USART2RX.BUFF#Define EC20_BUFF_Size UART2_BUFF_SIZE / *! Layms Hal_Delay#Define Print_enable 0x10/*! 下面是STM32F407使用ec20实现对接和自制EMQX的mqtt库。
1. 将 ec20_mqtt.lib 添加到您的项目中。
2. 导入头文件。
定义变量和私有mqtt服务器信息(我使用了订阅认证和鉴权):
3、实现EC20模块重置接口
4、调用接口
(1)初始化
(2)创建一个 mqtt 客户端并连接到服务器
(三)订阅发布主题
四、执行结果
发布订阅工作美好的。
评论前必须登录!
注册