|
三相逆變SPWM波產(chǎn)生和雙向DCDC
/**********************************************************************************
** 實(shí)驗(yàn)名:ADC外設(shè)的使用
** 使用編譯環(huán)境:MDK4.72A
** 固件庫(ST) Version: STM32F10x_StdPeriph_Driver V3.50
** 使用外設(shè):
**********************************************************************************/
測(cè)試說明:
編譯并下載程序。
測(cè)試結(jié)果:
下載完程序后,完成ADC的配置,并將ADC采樣值通過串口顯示在串口調(diào)試助手的窗口界面上和在OLED上顯示。
硬件連接:
LED1--->PC13
LED3--->PG15
USART1:PA9--MCU_TX PA10---MCU_RX
OLED屏
TP_NCS(CS)----------PA4
TP_SCK(D0_SCK)------PA5
TP_MISO(D/C)--------PA6
TP_MOSI(D1_SDIN)----PA7
VCC-----------------3.3
GND-----------------GND
ADC Channel_0-->PA0
單片機(jī)源程序如下:
- /******************** (C) COPYRIGHT 源地工作室 ********************************
- * 文件名 :main.c
- * 描述 :完成ADC的配置,并將ADC采樣值通過串口顯示在串口調(diào)試助手的窗口界面上和在OLED上顯示。
- * 庫版本 :V3.50
- * 作者 :zhuoyingxingyu
- * 版本更新: 2017-04-20
- * 調(diào)試方式:J-Link-OB
- **********************************************************************************/
- //頭文件
- #include "stm32f10x.h"
- #include "usart.h"
- #include "led.h"
- #include <stdio.h>
- #include "systick.h"
- #include "OLED.h"
- #include "fonts.h"
- #include "ADC.h"
- /**
- * @file main
- * @brief Main program.
- * @param None
- * @retval None
- */
- void OLED_Showf( char a )
- {
- int AH;
- float AL;
- char ADC_V=a;
- if(ADC_V>=0)
- {
- AH=ADC_V/1;
- AL=(int)(ADC_V*100)%100;
- OLED_ShowNum (42,6,AH,3,16);//顯示ASCII字符
- OLED_ShowChar(66,6,46,16);//顯示ASCII字符 .
- if(AL==0)
- OLED_ShowNum (70,6,AL,1,16);
- if(AL!=0)
- OLED_ShowNum (70,6,AL,2,16);//顯示ASCII字符
- }
- if(ADC_V<0)
- {
- OLED_ShowChar(30,6,45,16);//顯示ASCII字符
- OLED_Showf(0-ADC_V);
- }
- OLED_ShowChar(90,6,37,16);//顯示ASCII字符 %
- }
- int main(void)
- {
- uint16_t Temp_Value;
- float ADC_Value=0.000;
- char S;
- DAC_Configuration();//初始化DAC模塊
- SYSTICK_Init(); //延時(shí)函數(shù)初始化
- NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí) LED_Init(); //LED端口初始化
- // delay_1ms(8000);
- OLED_Init(); //初始化OLED
- OLED_Clear() ;
- OLED_ShowString(4,3,"Vo=",16);
- OLED_ShowString(85,3,"V",16);
- OLED_ShowString(4,6,"S=",16);
- ADC_Configuration();
- LED_GPIO_Config();//初始化LED
- USART1_Config();
- while (1)
- { float i;
- float b,dac_data;
- int AH;
- float AL;
- Temp_Value = ADC_GetConversionValue(ADC1);
- ADC_Value = (3.3/4096)*Temp_Value; /*將AD值轉(zhuǎn)換為電壓值*/
- printf("\r\n The Temp_Value is %d \r\n",Temp_Value);
- printf("\r\n The Value is %f \r\n",ADC_Value);
- AH=ADC_Value/1;
- S=(ADC_Value-3.3)/3.3*100;
- AL=(int)(ADC_Value*1000)%1000;
- OLED_ShowNum (32,3,AH,2,16);//顯示ASCII字符
- OLED_ShowChar(50,3,46,16);//顯示ASCII字符
- if(AL==0) OLED_ShowNum (52,6,AL,1,16);
- OLED_ShowNum (52,3,AL,3,16);//顯示ASCII字符
- OLED_Showf(S);
- delay_ms(500);
- dac_data=0;
- i=0.151;
- dac_data=i/3.30*4096;
- DAC_SetChannel1Data(DAC_Align_12b_R,dac_data);//設(shè)置輸出的電壓
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
DC雙向和三相逆變.rar
(918.22 KB, 下載次數(shù): 265)
2017-9-5 23:19 上傳
點(diǎn)擊文件名下載附件
往年電賽
|
|