使用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
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值