|
本次設(shè)計(jì)采用了32單片機(jī)來完成,真正的完成了電能的采集與管理
單片機(jī)源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "usart3.h"
- #include "esp8266.h"
- #include "string.h"
- #include "timer.h"
- #include "led.h"
- #include "adc.h"
- #include "lcd.h"
- /*
- 項(xiàng)目的主要內(nèi)容:STM32配合ESP8266模塊與服務(wù)器數(shù)據(jù)交互
- ESP8266的連接:USART3(PB10、PB11)
- 如何判斷數(shù)據(jù)接收完全?
- 1、出現(xiàn)了換行符;
- 2、如果超過10ms了都沒有下一條數(shù)據(jù)(TIM7來進(jìn)行10ms的定時(shí))。
- */
- int main(void)
- { char a[15];
- float k,kk;
- float w;
- u8 * m="zhinengchazuo";
- u16 adcx;
- float temp;
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- uart_init(115200); //串口初始化為115200
- //LED_Init(); //LED端口初始化
- LCD_Init();
- Adc_Init(); //ADC初始化
- POINT_COLOR=RED;//設(shè)置字體為紅色
- LCD_ShowString(60,50,200,16,16,m);
- //LCD_ShowString(60,70,200,16,16,"信通學(xué)院");
- //LCD_ShowString(60,90,200,16,16,"智能插座");
- LCD_ShowString(60,110,200,16,16,"2019/12/9");
- //顯示提示信息
- POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:");
- LCD_ShowString(60,150,200,16,16," V :0.000V");
- LCD_ShowString(60,170,200,16,16," W :0.000W");
- //delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- //uart_init(115200); //串口初始化為115200
- usart3_init(115200); //串口初始化為115200
- LED_Init();
-
- esp8266_start_trans(); //esp8266進(jìn)行初始化
-
- while(1)
- {
- if(USART3_RX_STA&0xf000)
- {
-
- adcx=Get_Adc_Average(ADC_Channel_1,10);
- LCD_ShowxNum(156,130,adcx,4,16,0);//顯示ADC的值
- temp=(float)adcx*(3.3/4096);
- adcx=temp;
- w=adcx*4;
- LCD_ShowxNum(156,150,w,1,16,0);//顯示電壓值
- temp-=adcx;
- temp*=1000;
- LCD_ShowxNum(172,150,temp,3,16,0X80);
-
- kk=(float)temp*(3.3/4000);
- adcx=kk;
- k=w/2;
- LCD_ShowxNum(156,170,k,1,16,0);//顯示電壓值
- kk-=adcx;
- kk*=1000;
- LCD_ShowxNum(172,170,kk,3,16,0X80);
-
- delay_ms(250);
-
-
- printf("USART3_RX_BUF=%s\r\n",USART3_RX_BUF);
- sprintf(a,"%s",USART3_RX_BUF);
- printf("a=%s",a);
-
- if(strstr((const char*)a,"on")) GPIO_ResetBits(GPIOB,GPIO_Pin_5);
- if(strstr((const char*)a,"off")) GPIO_SetBits(GPIOB,GPIO_Pin_5);
- USART3_RX_STA=0;
- }
-
- }
- }
復(fù)制代碼
所有程序51hei提供下載:
設(shè)計(jì)程序代碼.7z
(235.75 KB, 下載次數(shù): 23)
2020-2-10 01:53 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|