智慧花园(每天推进一点点)-STM32H743+ESP8266+OneNet

原计划直接从RTT操作系统上开始进行系统功能添加,过程中发现RTT有很多不熟悉的功能代码,还是先做基础的功能,再想办法移植到操作系统上吧!

参考代码是 :【正点原子】WIFI模块ATK-ESP8266资料(新资料)\2,程序源码\ATK-ESP8266模块原子云连接实验\阿波罗STM32H743开发板

1. usart1、led、key、lcd初始化在main()函数中,usart1波特率为115200bps,对应的配置与中断代码在usart.c中。void usart_init(uint32_t baudrate)函数配置基本参数,调用HAL库HAL_UART_Init(&g_uart1_handle)传递参数,该HAL库函数内部调用通用的串口初始化函数 HAL_UART_MspInit(UART_HandleTypeDef *huart)对时钟、引脚、中断进行配置。因此,串口3的初始化配置在此文件 HAL_UART_MspInit()中添加了时钟、引脚、中断等初始化处理。

2. ESP8266使用的串口3,对应的串口3代码在atk_mw8266d_uart.c文件。串口3的波特率初始化设置为115200bps,在demo.c的demo_run()函数调用时定义,ESP8266的串口频率可以到4Mbps。结合前面照片上传案例,可以尝试将串口速率提速到2Mbps(可行!)。

3. 修改demo.c文件。原文件代码是连接原子云平台,尝试移植到OneNet云平台。链接到OneNet云平台的过程如下:

根据F407调试通过的代码修改H743的demo.c文件如下,特别注意:6. MQTTUSERCFG对应的命令有近200个字符,例程中拼接cmd的数组大小只有64字节,必须修改cmd数组大小,否则命令无法正确拼接上传。此问题困扰了近2小时,最后终于发现了!! 

另外有一个问题:WIFI热点名是中文不知道如何处理,最后选择使用手机当热点,连接较慢,所以在WIFI连接时选择相对等待一段时间。

类似AT指令在使用时都要修改对应的cmd数组大小,避免指令拼接不完整的错误!!

3. ESP8266模块可以使用USB转串口模块直接先用PC机调试好AT指令,再进行程序调试。利用//AT+UART=115200,8,1,0,0指令可以修改ESP8266的波特率,尝试使用921600bps,串口3链接ESP8266与OneNet云传递数据成功,串口1还是使用115200bps进行程序运行过程观察。

今天进步一点点目标完成。加油!坚持就有希望!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值