【STM32F411RE和L610物联网入门学习笔记】

配置MX生成代码并在KEIL中添加串口通信代码;

粗浅的学习文章,仅供参考;
广和通资料群里面的移植示例个人感觉没什么用处;毕竟粗看过去用到了tcp似乎是;

使用stm32cubeMX配置

我这边使用的是stm32cubeide和广和通老师使用的不太一样但是没有影响;

按照图标指示
新建一个工程

选择stm32f411re

按照广和通发的pdf–串口进行完毕所有的配置

打开生成的文件中的MDK-ARM文件;

打开keil文件;

勾选三个以便日后查找info;

最重要的一步:配置L610发送命令函数

编写ESP8266函数并添加配套函数

首先添加一个或两个uart重定向printf函数和uart接收中断处理函数

void u1_printf(char* fmt,...)
{  uint16_t i,j; va_list ap; va_start(ap,fmt);vsprintf((char*)USART_TX_BUF,fmt,ap);va_end(ap);i=strlen((const char*)USART_TX_BUF);     for(j=0;j<i;j++)                          {while((USART1->SR&0X40)==0);USART1->DR =USART_TX_BUF[j];  }
}

此时的思想可以是一个串口用于具体实验,一个用于调试
如果你想设置定时器中断也是可以的,定时器中断,用来判断接收命令是否超时,如果超时就按照接受命令

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance==USART1)//{if(recv_way_state==0){if((USART_RX_STA&0x8000)==0){if(USART_RX_STA&0x4000){if(aRxBuffer[0]!=0x0a)USART_RX_STA=0;else {USART_RX_STA|=0x8000;  }}else{ if(aRxBuffer[0]==0x0d)USART_RX_STA|=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3FFF]=aRxBuffer[0] ;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;}      }}}

编写发送和检查命令核心函数

uint8_t L610_send_cmd(uint8_t *cmd,uint8_t *ack,uint16_t waittime)
{uint8_t res = 0;USART3_RX_STA = 0;u3_printf("%s\r\n",cmd);if(ack&&waittime)        //需要等待应答{while(--waittime)  //等待倒计时{HAL_Delay(10);if(USART3_RX_STA&0X8000)//接收到期待的应答结果{if(esp8266_check_cmd(ack)){u1_printf("ack:%s\r\n",(uint8_t*)ack);break;//得到有效数据 }USART3_RX_STA=0;} }if(waittime==0)res=1; }return res;
}

编写中断服务函数

 /* USER CODE BEGIN USART1_Init 2 */HAL_UART_Receive_IT(&huart1, (uint8_t*)aRxBuffer, RXBUFFERSIZE);/* USER CODE END USART1_Init 2 */// HAL_UART_Receive_IT该函数在文件Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c中查询;

aRxBuffer[]储存了数据
Size大小

剩下的步骤就是解析然后完成你们组的任务了

【STM32F411RE和L610物联网入门学习笔记】相关推荐

  1. 中移物联网onenet入门学习笔记2:中移物联的通信格式

    中移物联网onenet入门学习笔记2:中移物联的通信格式 中移物联网硬件接入协议:LWM2M协议,EDP协议,MQTT协议,HTTP协议,TCP透传,MODBUS协议,JT/T808协议,RCMP协议 ...

  2. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  3. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

    Crypto++入门学习笔记(DES.AES.RSA.SHA-256) 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypt ...

  4. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  5. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  6. 机器学习入门学习笔记:(2.3)对数几率回归推导

    理论推导   在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型.   将线性回归模型简写为:y=ωTx+by = \omega^Tx+b:   ...

  7. 机器学习入门学习笔记:(2.2)线性回归python程序实现

      上一篇博客中,推导了线性回归的公式,这次试着编程来实现它.(机器学习入门学习笔记:(2.1)线性回归理论推导 )   我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式:另一 ...

  8. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  9. node入门-学习笔记

    文章目录 node入门-学习笔记 node 启动node服务 重构express-run node入门-学习笔记 node 为什么后端要用node, 因为它是js js运行时环境 主要使用expres ...

最新文章

  1. JavaWeb开发环境配置
  2. tableau应用实战案例(五十)-销售业绩的tableau可视化案例
  3. 基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
  4. mysql中nvl_Mysql中类似于oracle中nvl()函数的ifnull()函数
  5. 我的原创,思考写作时间在1小时以上,希望读者有真正收获的博客
  6. java doget 返回json_在@ResponseBody spring注释中返回json响应
  7. 安装linux后win7引导程序,在Ubuntu系统下装Win7并引导双系统
  8. 环境在c盘_程序员,拯救我的C盘
  9. 中级工程师考试2019——地图制图与地理信息系统
  10. warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
  11. 华三H3C链路聚合配置实例
  12. memset 函数使用
  13. paip.操作DATATABLE增加列及内容
  14. ios开发学习- 简易音乐播放器2 (基于iPhone4s屏幕尺寸)-- 歌词解析--plist文件应用--imageNamed图片加载耗内存...
  15. 破立之间:金融科技时代的普惠新机会、新挑战
  16. CentOS 8.5.111与历史版本的下载、CentOS YUM配置
  17. node获取客户端ip
  18. 银行排队系统 c语言,C++实现银行排队系统
  19. 葫芦娃说 | 下一代编解码标准的抉择
  20. 【神经网络架构】Swin Transformer细节详解-1

热门文章

  1. ElementUI tree超出显示省略号
  2. 计算机辅助设计2004,电子线路计算机辅助设计( Protel 2004 ).PDF
  3. 敏捷开发:编写开发文档的利与弊
  4. 4.19内核SLUB内存分配器
  5. springboot发送邮件-163邮箱
  6. python数据类型的转换
  7. SCM:新一代存储介质技术
  8. Oracle错误——归档日志已满问题
  9. Ubuntu18.04安装搜狗拼音输入法皮肤透明解决方法
  10. assertThat断言测试方法