初探STM32F4(3)--WIFI模块(1)


通过上几节的分析,对STM32常用外设的配置有了基本概念,可以开始本文研究,本文并不是具体分析WIFI模块通讯机理,仅是对 正点原子的代码例程架构的详细剖析。

阅读完本文,要能回答以下问题:

  1. 简述单片机配置WIFI模块的主程序流程
  2. 解释WIFI模块的三种工作模式STA+AP、STA、AP都是什么?
  3. 单片机是通过发送AT指令来操作WIFI模块,简述发送AT指令的代码流程
  4. 如果将WIFI模块配置成STA模式,简述STA配置代码流程
  5. 配置好WIFI模块后,要与远端进行收发数据,收发数据的协议有UDP或者TCP(客户端/服务器),这些都是什么?
  6. 如果将WIFI模块配置成TCP客户端与远端通信,简述配置成TCP客户端的代码流程?简述发送数据的代码流程?
  7. STA/AP与TCP/UDP是两类不同层次的概念,简单区分一下。

WIFI测试的代码架构剖析

步骤1:wifi模块的主函数流程

1、阐述例程主函数代码结构?首先是单片机串口初始化,然后是其余用到的外设初始化,最后是WIFI模块初始化,之后就是测试WIFI模块收发数据。详细代码如下:

int main(void)
{
   
	u8 key,fontok=0; 	
//基本的外设初始化
  Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz   
  HAL_Init();                     //HAL库初始化
  delay_init(180);                //初始化延时函数
  uart_init(115200);              //初始化USART1
  usart3_init(115200);  		//初始化USART3
  
  //下面就是些其他外设的初始化配置了,以后再来学习。
  usmart_dev.init(90);				//³õʼ»¯usmart
  LED_Init();                     //³õʼ»¯LED 
  KEY_Init();                     //³õʼ»¯°´¼ü
  SDRAM_Init();                   //SDRAM³õʼ»¯
  LCD_Init();                     //LCD³õʼ»¯
	W25QXX_Init();				    			//³õʼ»¯W25Q256
	tp_dev.init();									//³õʼ»¯´¥ÃþÆÁ
  my_mem_init(SRAMIN);            //³õʼ»¯ÄÚ²¿ÄÚ´æ³Ø
  my_mem_init(SRAMEX);            //³õʼ»¯ÍⲿSDRAMÄÚ´æ³Ø
  my_mem_init(SRAMCCM);           //³õʼ»¯ÄÚ²¿CCMÄÚ´æ³Ø
  exfuns_init();		            	//ΪfatfsÏà¹Ø±äÁ¿ÉêÇëÄÚ´æ  
  f_mount(fs[0],"0:",1);          //¹ÒÔØSD¿¨ 
 	f_mount(fs[1],"1:",1);          //¹ÒÔØSPI FLASH.  
	key=KEY_Scan(0);
	if((key==KEY0_PRES)&&(tp_dev.touchtype&0X80)==0)		//Ç¿ÖÆУ׼£¬µç×èÆÁ²ÅÐèҪУ׼
	{
   
		LCD_Clear(WHITE);	//ÇåÆÁ
		TP_Adjust();  		//ÆÁĻУ׼ 
		TP_Save_Adjdata();	  
		LCD_Clear(WHITE);	//ÇåÆÁ
	}
	fontok=font_init();		//¼ì²é×Ö¿âÊÇ·ñOK
	if(fontok||key==KEY1_PRES)//ÐèÒª¸üÐÂ×Ö¿â				 
	{
   
		LCD_Clear(WHITE);		   	//ÇåÆÁ
 		POINT_COLOR=RED;			//ÉèÖÃ×ÖÌåΪºìÉ«	   	   	  
		LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
		while(SD_Init())			//¼ì²âSD¿¨
		{
   
			LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
			delay_ms(200);
			LCD_Fill(60,70,200+60,70+16,WHITE);
			delay_ms(200);		    
		}		
  • 7
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F4中,GPIO的初始化是通过调用HAL_GPIO_Init()函数来实现的。在初始化之前,需要包含"stm32f4xx.h"和"stm32f4xx_gpio.h"头文件。具体的初始化配置可以在GPIO_InitTypeDef结构体中设置,包括引脚、模式、上下拉等参数。例如,如果要将GPIO配置为输出模式,可以在初始化之后调用HAL_GPIO_WritePin()函数来设置输出的高低电平。另外,如果要将GPIO配置为外部中断模式,可以将GPIO_InitTypeDef的成员变量Mode配置为中断模式,并设置好触发方式,然后调用HAL_GPIO_Init()函数来配置GPIO复用功能寄存器。同时,还需要进行中断的初始化和配置,包括中断优先级和使能。具体的代码实现可以参考引用\[1\]和引用\[3\]中的示例代码。 #### 引用[.reference_title] - *1* *3* [初探STM32F4(5)--GPIO(2)](https://blog.csdn.net/qq_40977850/article/details/106122648)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [STM32自学笔记--1.GPIO初始化配置](https://blog.csdn.net/qq_57346347/article/details/124599976)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值