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

网站常见错误代码天津高端网站设计公司

网站常见错误代码,天津高端网站设计公司,常德网站建设产品,宝塔软件做网站4G接线 一、项目需求 服务器通过4G模块远程遥控开关灯。 二、项目实现 复制项目文件夹38-wifi控制风扇项目 重命名为39-4G遥控点灯 打开项目文件 加载文件 main.c #include sys.h #include delay.h #include led.h #include ua…   4G接线 一、项目需求 服务器通过4G模块远程遥控开关灯。 二、项目实现 复制项目文件夹38-wifi控制风扇项目 重命名为39-4G遥控点灯 打开项目文件 加载文件 main.c #include sys.h #include delay.h #include led.h #include uart1.h #include e840.h #include string.hint main(void) {HAL_Init(); /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init();//初始化led灯uart1_init(115200);//这里是跟电脑相连接的串口波特率e840_init(9600);//我这里的e840的波特率为9600// printf(hello word!\r\n);char recv_data[E840_RX_BUF_SIZE];while(1){ e840_receive_data(recv_data);//现在是把接收到的数据传到recv_data这里了if(strstr(recv_data,ON) ! NULL)//判断我们接收到的字符串里面是否有ON这个值有的话打卡风扇led1_ON();else if(strstr(recv_data,OFF) ! NULL)//没有不打开led1_OFF();delay_ms(10); // esp8266_test(); // delay_ms(500);} }e840.c #include sys.h #include e840.h #include string.h #include stdio.h #include delay.h #include stdarg.huint8_t e840_rx_buf[E840_RX_BUF_SIZE];//定义一个数组用来保存接收的缓冲区 uint8_t e840_tx_buf[E840_TX_BUF_SIZE];//定义一个数组用来保存发送的缓冲区 uint16_t e840_cnt 0,e840_cntPre 0; //定义一个计数器,和保存计数器原本状态的变量UART_HandleTypeDef e840_handle {0};void e840_uart_init(uint32_t baudrate) {e840_handle.Instance USART2;e840_handle.Init.BaudRate baudrate; //波特率e840_handle.Init.Mode UART_MODE_TX_RX;//收发模式;e840_handle.Init.Parity UART_PARITY_NONE;//无校验位e840_handle.Init.WordLength UART_WORDLENGTH_8B; //字长8个字长e840_handle.Init.StopBits UART_STOPBITS_1; //停止位1个停止位e840_handle.Init.HwFlowCtl UART_HWCONTROL_NONE; //无硬件流控HAL_UART_Init(e840_handle); }void USART2_IRQHandler(void) {uint8_t receive_data 0;//这个函数是用来检查特定的UART接口在这个例子中是e840_handle所代表的UART接口是否有数据可读if(__HAL_UART_GET_FLAG(e840_handle,UART_FLAG_RXNE) ! RESET)//关注RXNE这个标志位的值是不是不为reset0{if(e840_cnt sizeof(e840_rx_buf))//如果接收的字符长度大于字符缓冲区的长度则把缓冲区长度置0e840_cnt 0;//如果RXNE的值为1证明有数据所以需要接收数据HAL_UART_Receive(e840_handle,receive_data,1,1000);//句柄接收的数据存放在哪接收数据的个数超时时间e840_rx_buf[e840_cnt] receive_data;//将接收的数据存放在e840rx_buf数组中//HAL_UART_Transmit(e840_handle,receive_data,1,1000);//发送数据句柄要发送的数据发送数据的长度超时} } //这个函数主要用来判断e840cnt有没有动如果没有动证明接收完成了 uint8_t e840_wait_receive(void) {if(e840_cnt 0)//如果cnt为0证明出现了错误return E840_ERROR;//出现错误if(e840_cnt e840_cntPre)//判断当前cnt和上一个cnt是否一致如果是一致的证明数据不动了传输完成{e840_cnt 0;//cnt清0return E840_EOK;//数据接收完成}e840_cntPre e840_cnt;//把当前计数器cnt的值赋给之前计数器return E840_ERROR;//} //把接收寄存器的内容清空 void e840_rx_clear(void) {//把接收缓冲器清空memset(e840_rx_buf,0,sizeof(e840_rx_buf));//清空长度e840_cnt 0; } //这个函数在while循环里来一直判断当前数据是否接收完 uint16_t e840_receive_data(char *recv_data) {if(e840_wait_receive() E840_EOK)//判断数据是否接受完整{printf(e840 recv: %s\r\n,e840_rx_buf);//接收完整打印数据//我们把e840_rx_buf中的内容通过memcpy的方式全部copy到recv_data中memcpy(recv_data,e840_rx_buf,strlen((const char *)e840_rx_buf));e840_rx_clear();//清除当前接收//返回e840_rx_buf的内容以及长度return strlen((const char*)recv_data);}return 0; } //发送数据的函数 void e840_send_data(char *fmt,...) {va_list ap;uint16_t len;va_start(ap,fmt);vsprintf((char *)e840_tx_buf,fmt,ap);va_end(ap);len strlen((const char *)e840_tx_buf);HAL_UART_Transmit(e840_handle,e840_tx_buf,len,100); }void e840_init(uint32_t baudrate) {//printf(e840初始化开始...\r\n);//e840串口初始化e840_uart_init(baudrate);}e840.h #ifndef __E840_H__ #define __E840_H__#include sys.h#define E840_RX_BUF_SIZE 128 //接收的长度 #define E840_TX_BUF_SIZE 64 //发送的长度#define E840_EOK 0 //宏定义错误代码 ok #define E840_ERROR 1 //错误 #define E840_ETIMEOUT 2 //超时 #define E840_EINVAL 3 //数据非法void e840_init(uint32_t baudrate); uint16_t e840_receive_data(char *recv_data); //void e840_test(void);#endif 注意 执行结果 服务器和4G模块以透传模式相连接开发板烧录代码上电4G模块通电蓝电源灯、黄模组附着网络灯SIM、绿模组与服务器连接成功三个指示灯常亮。串口1和电脑通过USB转TTL相连接并且打开对应串口的串口助手。 当在服务器中发送信息可通过透传模式将信息传递给4G模组4G模组接收到信息通过RX-TX将信息传递给开发板该信息执行开发板中代码信息开发板中的串口1接收到信息所以该信息可以在串口助手中查看到并且对应LED灯状态改变。 本实验要注意串口的波特率和4G模组的波特率可在main函数中使用正确的波特率。 补充在本实验中使用花生壳APP可以将我们的一个内网的IP地址映射成我们的外网IP地址然后我们的其他外网的ip就可以与该外网进行合法通信这个过程叫做内网穿透。 外网连接内网穿透 内网连接 三、出现的问题 当使用亿佰特时选择对应的串口号和波特率之后打开串口进入配置显示进入AT指令模式失败原因 波特率选择的不对换个波特率试试
http://www.dnsts.com.cn/news/32151.html

相关文章:

  • 足球哪个网站做的比较好怎么做网站优化 site
  • 建设局查询网站首页wordpress获取广告js
  • 班级网站建设需求分析网站建设视频技术论坛
  • 我要自学网做网站软件开发文档编制
  • 电子商城网站开发购物车竞价网站制作
  • 凡科网建站系统源码中国空间网站
  • 长沙租车网站排名宁波高端网站建设
  • 北京网站优化企业推荐股票的好网站
  • seo网站推广教程新公司如何做网站
  • kuler 网站跳转网站正在建设中
  • 合肥做网站哪家好网站外部链接怎么做
  • 谷歌推广费用多少优化大师下载安装免费
  • 沧州做网站优化哪家公司便宜上海紫博蓝网站
  • 网站转移码php旅游网站cms
  • 电子商务网站建设实训报告心得网站跳出率多少正常
  • 杭州专业的网站制作公司开公司需要多少钱
  • 怎么样自己制作网站google在线网页代理
  • 个人网站的首页wordpress 管理系统
  • 外贸建站深圳抖音seo搜索优化
  • 企业网站源码 vue手机端网站seo
  • 一起做业官方网站wordpress邮箱注册功能
  • 网站名称和备案公司名称不一样前端毕业设计题目可以做哪些
  • 交易平台网站开发教程百度云做文案的网站有些什么软件
  • 石龙镇住房规划建设局网站网站开发的过程步骤
  • 做胃镜多少钱那好天津津门网站a网站的流程图
  • 新网站建设脑图甘肃网站开发
  • 瑞安做网站的公司班级网站 模板
  • 对亚马逊网站做简要分析与评价贵阳网站开发制作公司
  • 重庆网站制做捕鱼网站电话
  • 代做网站公司有哪些制作图片视频的软件有哪些