include "usart.h" 
#include "delay.h"  
#include "esp8266.h"  
#include "led.h"  
#include "key.h" 
#include "stdio.h" 
#include "myoled.h" 
 
#include "lcd.h" 
 
u8 at_cwmode[] = {0x41, 0x54, 0x2B, 0x43, 0x57, 0x4D, 0x4F, 0x44, 0x45, 0x3D,  
                  0x33, 0x0D, 0x0A};//AT+CWMODE=3(回车) 
u8 at_rst[] = {0x41, 0x54, 0x2B, 0x52, 0x53, 0x54, 0x0D, 0x0A};//AT+RST(回车) 
u8 at_cwsap[] = {0x41, 0x54, 0x2B, 0x43, 0x57, 0x53, 0x41, 0x50, 0x3D, 0x22,  
                 0x45, 0x53, 0x50, 0x38, 0x32, 0x36, 0x36, 0x5F, 0x54, 0x45,  
                 0x53, 0x54, 0x22, 0x2C, 0x22, 0x31, 0x32, 0x33, 0x34, 0x35,  
                 0x36, 0x37, 0x38, 0x39, 0x30, 0x22, 0x2C, 0x31, 0x2C, 0x33,  
                 0x0D, 0x0A};//AT+CWSAP="ESP8266_TEST","1234567890",1,3(回车) 
u8 at_cipmux[] = {0x41, 0x54, 0x2B, 0x43, 0x49, 0x50, 0x4D, 0x55, 0x58,  
                  0x3D, 0x31, 0x0D, 0x0A};//AT+CIPMUX=1(回车) 
u8 at_sipserver[] = {0x41, 0x54, 0x2B, 0x43, 0x49, 0x50, 0x53, 0x45, 0x52, 0x56,  
                     0x45, 0x52, 0x3D, 0x31, 0x2C, 0x38, 0x30, 0x38, 0x30, 0x0D,  
                     0x0A};//AT+CIPSERVER=1,8080(回车) 
 
int main(void)  
{  
        u8 key; 
          
                Stm32_Clock_Init(9); //系统时钟设置   
                delay_init(72);                            //延时初始化 
                uart_init(72,115200);        //串口初始化为115200 
        uart3_init(72,115200); 
 
         
         int i = 0; 
        for(i = 0; i < 13; i++){ 
                USART3->DR = at_cwmode[i];//送出AT+CWMODE=3(回车) 
                while((USART3->SR & 0x80) == 0);//直到发送成功 
        } 
        delay_ms(1000); 
        for(i = 0; i < 8; i++){ 
                USART3->DR = at_rst[i];//送出AT+RST(回车) 
                while((USART3->SR & 0x80) == 0);//直到发送成功 
        } 
        delay_ms(2000); 
        for(i = 0; i < 42; i++){ 
                USART3->DR = at_cwsap[i];//送出AT+CWSAP="ESP8266_TEST","1234567890",1,3(回车) 
                while((USART3->SR & 0x80) == 0);//直到发送成功 
        } 
        delay_ms(1000); 
        for(i = 0; i < 13; i++){ 
                USART3->DR = at_cipmux[i];//送出AT+CIPMUX=1(回车) 
                while((USART3->SR & 0x80) == 0);//直到发送成功 
        } 
        delay_ms(1000); 
        for(i = 0; i < 21; i++){ 
                USART3->DR = at_sipserver[i];//送出AT+CIPSERVER=1,8080(回车) 
                while((USART3->SR & 0x80) == 0);//直到发送成功 
        } 
 
          while(1) 
        { 
                 
  } 
} 
 
 
void uart3_init(u32 pclk2,u32 bound) 
{            
        float temp; 
        u16 mantissa; 
        u16 fraction;            
        temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV(分频值) 
        mantissa=temp;                                 //得到整数部分 
        fraction=(temp-mantissa)*16; //得到小数部分          
    mantissa<<=4; 
        mantissa+=fraction;  
        RCC->APB2ENR|=1<<3;   //使能PORTB口时钟   
        RCC->APB1ENR|=1<<18;  //使能串口时钟  
        GPIOB->CRH&=0XFFFF00FF;//IO状态设置 
        GPIOB->CRH|=0X00008B00;//IO状态设置  
        RCC->APB1RSTR|=1<<18;   //复位串口1 
        RCC->APB1RSTR&=~(1<<18);//停止复位                       
        //波特率设置 
         USART3->BRR=mantissa; // 波特率设置          
        USART3->CR1|=0X200C;  //1位停止,无校验位. 
 
        //使能接收中断  
        USART3->CR1|=1<<5;    //接收缓冲区非空中断使能         
        MY_NVIC_Init(3,3,USART3_IRQn,2);//组2,最低优先级  
 
} 
 
 
 
 
 
 
 |