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

开启中断

添加用户代码

c 复制代码
/*
    on :
      0 : OFF
      1 : 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); // 
}
...
}

代码

完整代码

相关推荐
强化学习与机器人控制仿真3 分钟前
ROS & ROS2 机器人深度相机激光雷达多传感器标定工具箱入门教程(一)
开发语言·人工智能·stm32·深度学习·机器人·自动驾驶
技术干货贩卖机2 小时前
0基础 | 开发环境 |51单片机编译环境 Keil C251和C51,STM32的编译环境Keil 5 MDK-ARM
arm开发·stm32·嵌入式硬件
星辰pid3 小时前
STM32+dht11+rc522+jq8400的简单使用
stm32·单片机·嵌入式硬件
YdaMooc13 小时前
STM32-FreeRTOS的详细配置
stm32·单片机·嵌入式硬件
云山工作室14 小时前
基于STM32的智能门禁系统
stm32·单片机·毕业设计·毕设
无处在15 小时前
STM32 四足机器人常见问题汇总
stm32·嵌入式硬件·机器人
南梦也要学习16 小时前
STM32江科大-----PWR电源控制
stm32·单片机·嵌入式硬件
时光の尘17 小时前
FreeRTOS菜鸟入门(五)·空闲任务与阻塞延时的实现
c语言·stm32·嵌入式硬件·mcu·物联网·freertos
正点原子19 小时前
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——EEPROM、SPI FLASH测试 #AT24C64 #W25Q128
linux·stm32·单片机·嵌入式硬件·stm32mp257
光芒Shine21 小时前
【STM32-代码】
stm32·单片机·嵌入式硬件