当前位置: 首页 > news >正文

自己网站怎么做外链wordpress个人介绍主题

自己网站怎么做外链,wordpress个人介绍主题,网站内容是怎么吸引用户的,电子商城网站建设项目规划书一、简介 EC200S-CN 是移远通信最近推出的 LTE Cat 1 无线通信模块#xff0c;支持最大下行速率 10Mbps 和最大上行速率 5Mbps#xff0c;具有超高的性价比#xff1b;同时在封装上兼容移远通信多网络制式 LTE Standard EC2x#xff08;EC25、EC21、EC20 R2.0、EC20 R2.1支持最大下行速率 10Mbps 和最大上行速率 5Mbps具有超高的性价比同时在封装上兼容移远通信多网络制式 LTE Standard EC2xEC25、EC21、EC20 R2.0、EC20 R2.1和 EC200T/EG25-G/EG21-G 模块以及 UMTS/HSPA UC20/UC200T 模块实现了 3G 网络与 4G 网络之间的无缝切换。EC200S-CN 还支持标准的 Mini PCIe 封装以满足不同行业产品应用需求。 Quectel EC2x 模块具有嵌入式 TCP/IP堆栈使主机可以通过 AT 命令直接上网。可以实现TCP客户端、UDP客户端、TCP服务器和UDP服务器。 二、AT指令 2.1 AT 测试AT指令功能是否正常等待模块返回 OK。 ATOK2.2 AT CPIN? 查询 SIM 卡状态返回 READY 则表示SIM卡正常如果 20 秒后还无法识别 SIM 卡重新启动模块。 ATCPIN?CPIN: READYOK2.3 AT CREG? 查询模组是否注册上GSM网络如果 90秒后未能在 CS 上注册域名服务重新启动模块。 如果返回 1 或 5 代表 CS 服务注册成功。 CREG:0,1 表示已注册上本地网CREG:0,5表示注册上漫游网。 ATCREG?CREG: 0,1OK2.4 AT CGREG? 查询模组是否注册上GPRS网络CGREG:0,1 表示已注册上本地网CGREG:0,5表示注册上漫游网。 ATCGREG?CGREG: 0,1OK2.5 AT QICSGP1,1,“CMNET” 该命令可用于配置APNusernamepassword等TCP / IP上下文参数。QoS设置可以由AT CGQMINAT CGEQMINAT CGQREQ和AT CGEQREQ配置 。 ATQICSGP?查询命令参数。ATQICSGPcontextID查询 contextID的配置信息。ATQICSGPcontextID[,context_type,APN[,username,password)[,authentication]]]配置 contextID信息。 contextID整数类型。上下文ID。范围是1-16。context_type整数类型。协议类型。1IPV4、2IPV4V6。APN字符串类型。接入点名称。移动CMNET联通UNINETusername字符串类型。用户名。password字符串类型。密码。authentication整数类型。身份验证方法。0没有、1PAP、2CHAP、3PAP或CHAP。返回信息OK 或 ERROR。 ATQICSGP1,1,\CMNET\,\\,\\,1OK2.6 AT QIDEACT1 在激活GPRS场景之前先关闭GPRS场景确保连接正确 ATQIDEACT1OK2.7 AT QIACT1 激活移动场景 ATQIACT1OK2.8 ATQIOPEN 该命令用于打开套接字服务。 ATQIOPEN?查询命令参数。ATQIOPENcontextID,connectID,service_type,IP_address/domain_name,remote_port[,local_po CONNECTrt[,access_mode]] 打开 Socket 服务。 contextID 整数类型。上下文ID。范围是1-16。connectID 整数类型。套接字服务索引。范围是0-11。SERVICE_TYPE字符串类型。套接字服务类型。 “ TCP ” 作为客户端启动TCP连接“ UDP ”作为客户端启动UDP连接“TCP LISTENER” 启动TCP服务器以侦听TCP连接“UDP SERVICE” 启动UDP服务IP_address字符串类型。 如果service_type是TCP或UDP 则表示远程服务器的IP地址例如 “220.180.239.212”。如果service_type是TCP LISTENER或UDP SERVICE 地址请输入“127.0.0.1”。domain_name字符串类型。远程服务器的域名地址。remote_port 远程服务器的端口仅在service_type为“TCP”或“UDP”时有效。范围是0-65535。LOCAL_PORT 本地端口。范围是0-65535。 如果service_type是“TCP LISTENER”或“UDP SERVICE”则此参数必须指定。如果service_type是“TCP”或“UDP”。如果local_port为0那么本地端口将是自动分配。否则将按指定分配本地端口。access_mode 整数类型。套接字服务的数据访问模式。 0 缓冲区访问模式1直推模式2透明访问模式err整数类型。操作的错误代码。请参阅第4章。 ATQIOPEN1,0,\TCP\,\180.97.81.180\,53540,0,1OKQIOPEN: 0,0Buffer模式Push模式透传模式。通过参数access_mode进行配置。 2.9 AT QISEND 如果指定套接字服务的access_mode是缓冲区访问模式或直接推送模式则数据可以是通过AT QISEND发送。如果数据成功发送到模块将返回“ SEND OK ” 。否则它将返回“ SEND FAIL ” 或“ ERROR ” 。“ SEND FAIL ” 表示发送缓冲区已满客户可以尝试重新发送数据。“ERROR”表示在发送过程中遇到错误 数据。客户应该延迟一段时间来发送数据。最大数据长度为1460字。“SEND OK”并不意味着数据已成功发送到服务器。客户可以查询数据是否通过AT QISEND connectID0命令到达服务器。透传模式下不需要AT指令发送数据 三、TCP/IP AT命令拨号流程 四、复位模块 RESET_N 引脚可用于使模块复位。拉低 RESET_N 引脚至少 300 ms 后释放可使模块复位。RESET_N 信号对干扰比较敏感因此建议在模块接口板上的走线应尽量的短且需包地处理。 五、移植文件 5.1 board_ec200s.c /********************************************************************** INCLUDES*/ #include stdlib.h #include string.h #include stm32f10x.h #include FreeRTOS.h #include task.h #include board_ec200s.h uint8_t sendCmd(char *pCmd, char *pRes, uint32_t timeOut, uint8_t sendNum); void clearBuffer(void); void reset(void);/********************************************************************** GLOBAL VARIABLES*/ uint8_t g_usart2RecvFinish 0; // 串口2接收标志串口接收完成标志 char g_ec200sBuf[1024] {0}; // 接收缓存 uint32_t g_ec200sCnt 0; // 接收计数 /********************************************************************** PUBLIC FUNCTIONS*/ /**brief 初始化param 无return 1 - 成功0 - 失败 */ uint8_t EC200S_Init(void) { printf(EC200S_Init\r\n);uint8_t result 0;uint8_t step 0;switch(step){case 0:if(sendCmd(AT\r\n,OK, 10, 5)) // 测试AT指令功能是否正常{step;}else{printf(Err:AT\r\n);reset();break;} case 1:if(sendCmd(ATCPIN?\r\n,CPIN: READY, 20, 2)) // 查询SIM卡是否正常返回ready则表示SIM卡正常{step;}else{printf(Err:ATCPIN?\r\n); // 20秒内无法识别SIM状态重启模块reset();break;}case 2:if(sendCmd(ATCREG?\r\n,CREG: 0,1, 90, 2)) // 查询模组是否注册上GSM网络{step; }else{printf(Err:ATCREG?\r\n); // 90秒内没有注册上CS业务重启模块 reset();break;}case 3:if(sendCmd(ATCGREG?\r\n,CGREG: 0,1, 60, 2)) // 查询模组是否注册上GPRS网络{step; }else{printf(Err:ATCGREG?\r\n); // 60秒内没有注册上PS业务reset(); break;}case 4:if(sendCmd(ATQICSGP1,1,\CMNET\,\\,\\,1\r\n, OK, 40, 3)) // 查询模组是否注册上GPRS网络{result EC200S_NetConfig(); }else{printf(Err:ATQICSGP1,1\r\n); // 如果3次都没停止成功或超过40秒没有回应则重启模块reset();break;}}return result; }/**brief 网络配置param 无return 无 */ void EC200S_GpioConfig(void) {GPIO_InitTypeDef gpioInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOgpioInitStructure.GPIO_Pin GPIO_Pin_8; // 选择要初始化的GPIOB引脚PB8gpioInitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 设置引脚工作模式为通用推挽输出 gpioInitStructure.GPIO_Speed GPIO_Speed_50MHz; // 设置引脚输出最大速率为50MHzGPIO_Init(GPIOB, gpioInitStructure); }/**brief 网络配置param 无return 1 - 成功0 - 失败 */ uint8_t EC200S_NetConfig(void) { uint8_t result 0;if(sendCmd(ATQIDEACT1\r\n, OK, 40, 1)) // 在激活GPRS场景之前先关闭GPRS场景确保连接正确{if(sendCmd(ATQIACT1\r\n, OK, 150, 1)) // 激活移动场景{EC200S_Connect();} else // 等待150秒后没有响应重启模块{printf(Err:ATQIACT1\r\n); // 重启模块reset();}} else // 等待40秒后没有响应重启模块{printf(Err:ATQIDEACT1\r\n); // 重启模块reset();} }/**brief 连接TCP服务器param 无return 无 */ void EC200S_Connect(void) {if(sendCmd(ATQIOPEN1,0,\TCP\,\180.97.81.180\,53540,0,1\r\n, QIOPEN:, 150, 5)) {printf(Connect Success\r\n);} else{printf(Err:ATQIOPEN1,0\r\n);} }/**brief 发送数据到TCP服务器param pString -[in] 发送数据return 无 */ void EC200S_Send(char *pString) {if(sendCmd(ATQISEND0\r\n, , 60, 1)) {if(sendCmd(ATQISEND0,0\r\n, OK, 5, 24)) // 2分钟后每5秒查询一次共24次{/* 发送数据成功对方收到数据 */}else{printf(Err:ATQISEND0\r\n); if(sendCmd(ATQICLOSE0\r\n, OK, 10, 1)) // TCP连接出现异常关闭TCP连接{printf(ATQICLOSE\r\n);EC200S_Connect();}else{reset(); // 等待10秒没有响应重启模块} }}else{reset(); // 等待60秒没有响应重启模块} }/**brief 从TCP服务器接收数据param pRecvDataBuf -[out] 接收数据return 接收数据长度 */ uint32_t EC200S_Receive(char *pRecvDataBuf) {uint32_t recvDataLen 0;if(g_isUsart2RecvFinish) // 如果串口接收完成{if(strstr((const char *)g_ec200sBuf, QIURC: \recv\,0,) ! NULL) // 如果检索到关键词{memcpy(pRecvDataBuf, g_ec200sBuf, g_ec200sCnt);recvDataLen g_ec200sCnt;}clearBuffer();} return recvDataLen; }/********************************************************************** LOCAL FUNCTIONS*/ /**brief 发送AT命令param pCmd -[in] 命令字符串param pRes -[in] 需要检测的返回命令字符串param timeOut -[in] 等待时间param sendNum -[in] 命令发送次数return 1 - 成功0 - 失败 */ uint8_t sendCmd(char *pCmd, char *pRes, uint32_t timeOut, uint8_t sendNum) {uint8_t i 0;uint32_t time;clearBuffer(); // 清空缓存 for(i 0; i sendNum; i){time timeOut * 10;USART_SendString(USART2, pCmd);while(time--){if(g_usart2RecvFinish) // 如果串口接收完成{if(strstr((const char *)g_ec200sBuf, pRes) ! NULL) // 如果检索到关键词{printf(%s, g_ec200sBuf);return 1;}} vTaskDelay(100); // 等待100毫秒}clearBuffer();}return 0; }/**brief 清空缓存param 无return 无 */ void clearBuffer(void) {memset(g_ec200sBuf, 0, sizeof(g_ec200sBuf));g_ec200sCnt 0;g_usart2RecvFinish 0; }/**brief 重启模块param 无return 无 */ void reset(void) {printf(reset\n); GPIO_ResetBits(GPIOB, GPIO_Pin_8);vTaskDelay(2000);GPIO_SetBits(GPIOB, GPIO_Pin_8); }/****************************************************END OF FILE****************************************************/4.2 board_ec200s.h #ifndef _BOARD_EC200S_H_ #define _BOARD_EC200S_H_/********************************************************************** INCLUDES*/ #include stm32f10x.h/********************************************************************** GLOBAL VARIABLES*/ extern uint8_t g_usart2RecvFinish; // 串口2接收标志串口接收完成标志 extern char g_ec200sBuf[1024]; // 接收缓存 extern uint32_t g_ec200sCnt; // 接收计数/********************************************************************** API FUNCTIONS*/ uint8_t EC200S_Init(void); void EC200S_GpioConfig(void); uint8_t EC200S_NetConfig(void); void EC200S_Connect(void); void EC200S_Send(char *pString); uint32_t EC200S_Receive(char *pRecvDataBuf);#endif /* _BOARD_EC200S_H_ */六、使用方法 EC200S_GpioConfig(); EC200S_Init(); while(1) // 任务都是一个无限循环不能返回 {EC200S_Send(TEST);vTaskDelay(10000); char recvDataBuf[256] {0};int recvDataLen EC200S_Receive(recvDataBuf); }/**brief 串口2收发中断param 无return 无 */ void USART2_IRQHandler(void) {if(USART_GetITStatus(USART2, USART_IT_RXNE) ! RESET) // 接收中断{g_usart2RecvFinish 1; // 串口2接收标志if(g_ec200sCnt sizeof(g_ec200sBuf)){g_ec200sCnt 0; // 防止串口被刷爆}g_ec200sBuf[g_ec200sCnt] USART2-DR;USART_ClearFlag(USART2, USART_FLAG_RXNE);} }
http://www.yutouwan.com/news/323300/

相关文章:

  • 域名续费后网站打不开seo优化流程
  • wordpress中文书籍提升seo排名平台
  • 做名片网站西安装修公司排名
  • 网站中下拉列表框怎么做大型旅游网站源码 织梦 2016
  • 域名申请好了 怎么做网站室内设计网络课程
  • 石家庄网站定制开发wordpress 网址 显示
  • 企业网站群建设方案许昌网站推广公司
  • 门户网站的建设目的洛阳网站建设好做不
  • 微信公众号做视频网站吗电商项目策划书
  • 做电商网站要多少钱0716网站建设
  • 响应式瀑布流网站程序wordpress博客站点统计代码
  • 珠海网站制作推广自己做网站需要学些什么
  • 网络营销策略的方法网站标题优化
  • 昆山城市建设投资有限公司网站济南做网络安全的公司
  • 洛阳网站建设内容全屏wordpress
  • 青岛建站模板制作排名点击软件
  • h5四合一网站建设虚拟主机和网站空间
  • 中牟做网站小程序制作教程视频
  • 网站空间绑定域名河池网站开发工程师招聘网
  • 用asp.net开发网站的优势专业做网站服务商
  • 网站 ip修改备案流程图企业网站帮助中心
  • 网营中国网站建设wordpress 描文本优化
  • 为什么要做外贸网站thinksns网站开发
  • 大连网站优化快速排名书店网页设计图片
  • 展示型网站设计教学网站前台er图
  • 做门窗投标网站西安网站建设哪里好
  • 建设网站选多大的空间合适企业网站的公司和产品信息的介绍与网络营销关系
  • 小学微机作业做网站网站后期维护内容
  • 邢台人才网官网首页seo是什么意思如何实现
  • 网站开发 加二维扫码一个网站绑定2个域名