stm32esp8266
时间: 2023-09-12 12:11:10 浏览: 158
引用: 最近想实现esp8266-01s系列和stm32f103c8t6之间进行串口通信,然后在网上看了好多这方面的资料最终都以失败告终。不断尝试下还是实现该功能,同时非常感谢这位博主。博主链接。
引用: 实现的最终功能是能够通过手机连上ESP8266作为服务端模式下的wifi,让后在手机上发送相关的指令,esp8266接收后再通过串口发送给单片机 ,间接的来控制我们的外设。esp8266常用指令介绍 具体的用法可以查看相关的esp8266的手册 下面就只介绍一下配置三种不同模式常用的几个指令。
引用: c 主程序 /***************************************************/ //该程序还是借鉴前面提到的博主,后面会根据自己功能的需求进行相应的修改 #include "stm32f10x.h" #include "bsp_usart.h" #include "delay.h" #include "led.h" #include "usart3.h" #include "string.h" #include "esp8266.h" /** * @brief 主函数 * @param 无 * @retval 无 */ int main(void) { USART_Config(); delay_init(); LED_Init(); usart3_init(115200); esp8266_start_trans(); printf("初始化完成Start Test\n"); USART3_RX_STA=0; while(1) { if(USART3_RX_STA&0x8000) //如果消息接收完成,则处理 { if(strstr((const char*)USART3_RX_BUF,"on")) //这里是看接收到的消息中有没有自己设置的命令“on”,strstr()函数不会用的可以搜一下 { GPIO_ResetBits(GPIOC,GPIO_Pin_13); } if(strstr((const char*)USART3_RX_BUF,"off")) { GPIO_SetBits(GPIOC,GPIO_Pin_13); } USART3_RX_STA=0; //消息处理完成,开始重新接收 memset(USART3_RX_BUF,0,600); //将接收区清0 } } } /*********************************************END OF FILE**********************/
您想要实现的是ESP8266-01S系列和STM32F103C8T6之间的串口通信,然后通过手机连接ESP8266作为服务端模式下的WiFi,以控制外设。实现这个功能的关键是在STM32主程序中正确配置和使用串口通信及ESP8266模块。在主程序中,您需要包含所需的头文件,并初始化串口和相关外设。然后,您可以通过串口接收来自ESP8266的数据,并根据接收到的指令来控制外设的状态。在给定的示例代码中,当接收到的消息中包含"on"时,GPIO引脚将被置低,而当接收到的消息中包含"off"时,GPIO引脚将被置高。不断循环接收和处理消息,直到消息处理完成。请注意,根据您的具体需求,您可能需要修改代码来适应您的应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [ESP8266与STM32](https://blog.csdn.net/boybs/article/details/121444199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文