使用esp8266实现STM32联网(最简单USART方法)

上一篇

esp8266怎么配置
    esp8266和USB转TTL连接
esp8266简单介绍
esp8266连接路由器
esp8266通过路由器连接在同一局域网中的电脑,建立TCP连接
esp8266使用串口发送数据到电脑上的网络调试助手
esp8266使用串口通过局域网发送到电脑上自己写的Java程序
esp8266的透传模式
esp8266使用透传模式连接到电脑的网络调试助手
esp8266使用透传模式连接到电脑上的java程序

这一篇

esp8266与STM32连接,电脑通过STM32配置esp8266实现联网发送数据
具体流程如下图

2=
esp8266怎么和STM32连接(引脚连接)?

STM32CubeMx配置的usart2使用的PA2和PA3要与esp8266的TX和RX对应,但是得反过来接,要么根本发不出去,看来esp8266又印反了
3V3和EN得接到同一个3V上才可以,要不收到的老是error

STM32使用USART和电脑相互传输数据?

将STM32产生的数据发送到电脑的串口调试助手
    第一种方式:
        使用UASRT传输只需要重新定义fputc()函数,直接使用Printf函数就可以将字符串打印到电脑(即通过串口输出到电脑)
    第二种方式:
        使用HAL库中封装好的UASART函数  HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)也可以实现串口输出
电脑要发送字符串给STM32,那么STM32怎么收到数据,而且知道这个数据什么意思呢?
    第一种方式(只能接收定长字符串):
        HAL库依旧有封装好的函数HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout),但是使用这个函数有一个问题,这个函数的额第三个参数是收到的字符串的大小,可是我都没有发送,怎么提前把这个字符串的大小写入单片机呢?
            其实问题是STM32如何接收不定长的字符串?
        【STM32内部产生的数据或者从传感器中获取的数据,STM32如果要发送该数据可以直接使用sizeof获得数据长度作为第三个参数,但是当人为的发送给串口时,由于提前烧入的程序如果要使用HAL库的USART接收函数的话,需要确定一个字符串长度,那么这个程序就只能接收指定长度的字符串了,那要如何实现不定长也能接收呢?】
    第二种方式:
        DMA
使用ESP8266STM32联网,您需要遵循以下步骤: 1. 首先,您需要将ESP8266连接STM32。这可以通过串口或SPI接口实现。如果您使用的是串口,则需要将ESP8266的TX引脚连接STM32的RX引脚,将ESP8266的RX引脚连接STM32的TX引脚。如果您使用的是SPI接口,则需要将ESP8266的MISO、MOSI、CLK和CS引脚连接STM32的相应引脚。 2. 接下来,您需要编写代码来控制ESP8266。您可以使用AT指令来控制它。您可以在ESP8266的数据手册中找到所有的AT指令。下面是一些常用的AT指令: AT:检查ESP8266是否正常工作。 AT+CWMODE=1:将ESP8266设置为站点模式。 AT+CWJAP="SSID","password":连接到WiFi网络。 AT+CIPSTART="TCP","ip address",port:建立TCP连接。 AT+CIPSEND:发送数据。 AT+CIPCLOSE:关闭TCP连接。 3. 然后,您需要编写代码来控制STM32。您可以使用HAL库或标准外设库来控制STM32。下面是一些常用的函数: HAL_UART_Transmit:将数据发送到ESP8266。 HAL_UART_Receive:从ESP8266接收数据。 HAL_SPI_Transmit:将数据发送到ESP8266。 HAL_SPI_Receive:从ESP8266接收数据。 4. 最后,您需要编写代码来处理ESP8266发送的数据。您可以使用STM32的中断来处理数据。下面是一些常用的中断: USART1_IRQHandler:处理ESP8266发送的数据。 SPI1_IRQHandler:处理ESP8266发送的数据。 以上是基本步骤,您可以根据自己的要求进行修改和调整。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值