STM32CubeMX+keil5+esp8266(基于hal库的stm32+esp8266连接)

  1. MX的烧录口和时钟设置:


  2. 配置时钟:
  3. 串口1配置(用来输出提示信息)
     
  4. 串口2配置波特率115200,使能全局中断(用来做esp8266的串口通信)


     
  5. 命好名生成代码并打开。
  • 在usart.c中编写u1,u2格式化输出函数,在头文件加上USART1_TXBUFF_SIZE等宏定义和函数声明等
    //在usart.h中加入头文件
    #include "stdio.h"      //包含需要的头文件
    #include "stdarg.h"		//包含需要的头文件 
    #include "string.h"     //包含需要的头文件
    //宏定义及函数声明(.h):
    #define USART1_TXBUFF_SIZE   256    //定义串口1 发送缓冲区大小 256字节
    #define USART2_TXBUFF_SIZE   1024   //定义串口2 发送缓冲区大小 1024字节
    void u1_printf(char*,...) ;         //串口1 printf函数
    void u2_printf(char*,...) ;         //串口1 printf函数
    
    //在usart.c中加入函数:
    
    /*-------------------------------------------------*/
    /*函数名:串口1 printf函数                         */
    /*参  数:char* fmt,...  格式化输出字符串和参数    */
    /*返回值:无                                       */
    /*-------------------------------------------------*/
    __align(8) char Usart1_TxBuff[USART1_TXBUFF_SIZE];  
    void u1_printf(char* fmt,...) //不定参数函数
    {  
    	unsigned int i,length;
    	va_list ap;
    	va_start(ap,fmt);
    	vsprintf(Usart1_TxBuff,fmt,ap);
    	va_end(ap);	
    	length=strlen((const char*)Usart1_TxBuff);		
    	while((USART1->SR&0X40)==0);
    	for(i = 0;i < length;i ++)
    	{			
    		USART1->DR = Usart1_TxBuff[i];
    		while((USART1->SR&0X40)==0);	
    	}	
    }
    
    /*-------------------------------------------------*/
    /*函数名:串口2 printf函数                         */
    /*参  数:char* fmt,...  格式化输出字符串和参数    */
    /*返回值:无                                       */
    /*-------------------------------------------------*/
    
    __align(8) char USART2_TxBuff[USART2_TXBUFF_SIZE];  
    
    void u2_printf(char* fmt,...) 
    {  
    	unsigned int i,length;
    	va_list ap;
    	va_start(ap,fmt);
    	vsprintf(USART2_TxBuff,fmt,ap);
    	va_end(ap);	
    	length=strlen((const char*)USART2_TxBuff);		
    	while((USART2->SR&0X40)==0);
    	for(i = 0;i < length;i ++)
    	{			
    		USART2->DR = USART2_TxBuff[i];
    		while((USART2->SR&0X40)==0);	
    	}	
    }
    
    /*--------------------------------
  • 7
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值