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); // 
}
...
}

代码

完整代码

相关推荐
Deitymoon2 小时前
STM32——外部中断按键控制led
stm32·单片机·嵌入式硬件
czwxkn2 小时前
7STM32(stdl)flash内部闪存
stm32·单片机·嵌入式硬件
咕噜咕噜啦啦2 小时前
STlink下载程序
stm32·单片机
Deitymoon4 小时前
STM32——串口中断接收
stm32·单片机·嵌入式硬件
Deitymoon5 小时前
STM32——串口通信发送数据
stm32·单片机·嵌入式硬件
czwxkn6 小时前
8STM32(stdl)低功耗模式
stm32·单片机·嵌入式硬件
czwxkn6 小时前
9STM32(stdl)看门狗
stm32·单片机·嵌入式硬件
LCG元8 小时前
STM32实战:基于STM32F103的SPI通信驱动W25Qxx Flash存储
stm32·单片机·嵌入式硬件
iCxhust9 小时前
led_pattern = (led_pattern << 1) | (led_pattern >> 7)执行顺序
stm32·单片机·嵌入式硬件·51单片机·微机原理
Deitymoon9 小时前
STM32——串口通信发送字符串
stm32·单片机·嵌入式硬件