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

BearPi Std 板从入门到放弃 - 后天篇(3)(ESP8266透传点灯)

简介

电脑搭建一个TCP Server, ESP8266 串口设置好透传模式, 再由TCP Server发送指令控制灯的亮灭;
开灯指令: led_on+回车 ; 关灯指令: led_off+回车
主芯片: STM32L431RCT6
LED : PC13 \ 推挽输出即可 \ 高电平点亮
串口: Usart1 / LPUART
ESP8266 : 型号ESP-12F

步骤

设置ESP8266 透传

参考 [ESP8266 TCP/串口透传](https://blog.csdn.net/halo_hsuh/article/details/135134634?spm=1001.2014.3001.5501)

STM32项目创建

参考 BearPi Std 板从入门到放弃 - 引气入体篇(1)(由零创建工程到点亮LED)

初始化与ESP8266的串口LPUART1

在这里插入图片描述
开启中断
在这里插入图片描述

添加用户代码

/*on :0 : OFF1 : ON
*/
void User_LED_Set(int on)
{HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, on ? GPIO_PIN_SET : GPIO_PIN_RESET);
}void Command_Handle(const uint8_t *buf, int length)
{printf ("COMMAND HANDLE\r\n");if ( '\r' == buf[length-1] ){length -= 1;}if (0 == strncmp("led_on", (const char *)buf, length)){HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_SET);printf ("led_on!\r\n");}else if (0 == strncmp("led_off", (const char *)buf, length)){HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_RESET);printf ("led_off!\r\n");}
}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if ( huart->Instance == LPUART1 ){if ( '\n' ==  Cmd_Buffer[Cmd_Index] ){Command_Handle(Cmd_Buffer, Cmd_Index);Cmd_Index = 0;}else{++Cmd_Index;}HAL_UART_Receive_IT(&hlpuart1, &Cmd_Buffer[Cmd_Index], 1);	}
}int fputc(int ch, FILE *f)
{uint8_t temp[1] = {ch};{HAL_UART_Transmit(&huart1, temp, 1, 2);}return HAL_OK;
}int main(void)
{
...
HAL_UART_Receive_IT(&hlpuart1, &Cmd_Buffer[Cmd_Index], 1); // 开启接收
while(1)
{HAL_Delay(1000); // 
}
...
}

代码

完整代码

http://www.lryc.cn/news/264762.html

相关文章:

  • 【Linux】macOS下使用scp命令编写脚本上传文件至服务器
  • 难以置信:WINDOWS11真的取消了助记符
  • 使用VSC从零开始Vue.js——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务3:数据可视化
  • 企业直聘招聘人才求职系统招聘会小程序系统源码
  • 大型语言模型:SBERT — Sentence-BERT
  • 高效编写软件测试报告的关键技巧
  • 编写CI/CD自动化部署脚本
  • Pandas实践_分类数据
  • git的使用思维导图
  • Qt 软件界面点击QCombBox控件,造成整个界面移位
  • AI Native工程化:百度App AI互动技术实践
  • DDPM推导笔记
  • 【C#/Java】【小白必看】不要只会读写文本文件了!对象序列化助你提高效率
  • 排障启示录-无线终端信号弱
  • gem5 RubyPort: mem_request_port作用与连接 simple-MI_example.py
  • 无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测
  • 文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络
  • 前端验收测试驱动开发
  • 图像卷积操作
  • 目标检测入门体验,技术选型,加载数据集、构建机器学习模型、训练并评估
  • 【UE5插件推荐】运行时,通过HTTP / HTTPS下载文件(Runtime Files Downloader)
  • 信息论安全与概率论
  • 各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统
  • Netty Review - 优化Netty通信:如何应对粘包和拆包挑战
  • vue介绍以及基本指令
  • 重塑数字生产力体系,生成式AI将开启云计算未来新十年?
  • JFreeChart 生成图表,并为图表标注特殊点、添加文本标识框
  • vue整合axios 未完
  • java代码编写twitter授权登录
  • ​ SK Ecoplant借助亚马逊云科技,海外服务器为环保事业注入新活力