找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6368|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

三相逆變SPWM波產(chǎn)生和雙向DCDC的stm32源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
三相逆變SPWM波產(chǎn)生和雙向DCDC
/**********************************************************************************
** 實(shí)驗(yàn)名:ADC外設(shè)的使用
** 使用編譯環(huán)境:MDK4.72A
** 固件庫(kù)(ST) Version: STM32F10x_StdPeriph_Driver V3.50
** 使用外設(shè):
**********************************************************************************/      
測(cè)試說(shuō)明:
編譯并下載程序。

測(cè)試結(jié)果:
下載完程序后,完成ADC的配置,并將ADC采樣值通過(guò)串口顯示在串口調(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ī)源程序如下:
  1. /******************** (C) COPYRIGHT  源地工作室 ********************************
  2. * 文件名  :main.c
  3. * 描述    :完成ADC的配置,并將ADC采樣值通過(guò)串口顯示在串口調(diào)試助手的窗口界面上和在OLED上顯示。
  4. * 庫(kù)版本  :V3.50
  5. * 作者    :zhuoyingxingyu
  6. * 版本更新: 2017-04-20
  7. * 調(diào)試方式:J-Link-OB
  8. **********************************************************************************/       

  9. //頭文件
  10. #include "stm32f10x.h"
  11. #include "usart.h"
  12. #include "led.h"
  13. #include <stdio.h>
  14. #include "systick.h"
  15. #include "OLED.h"
  16. #include "fonts.h"
  17. #include "ADC.h"

  18. /**
  19.   * @file   main
  20.   * @brief  Main program.
  21.   * @param  None
  22.   * @retval None
  23.   */
  24. void OLED_Showf(  char a )

  25. {          
  26.      int AH;
  27.      float AL;
  28.      char ADC_V=a;
  29.          if(ADC_V>=0)
  30.                 {
  31.                 AH=ADC_V/1;
  32.         AL=(int)(ADC_V*100)%100;
  33.             OLED_ShowNum (42,6,AH,3,16);//顯示ASCII字符
  34.                 OLED_ShowChar(66,6,46,16);//顯示ASCII字符        .
  35.                 if(AL==0)
  36.                 OLED_ShowNum (70,6,AL,1,16);            
  37.             if(AL!=0)  
  38.                 OLED_ShowNum (70,6,AL,2,16);//顯示ASCII字符
  39.                 }
  40.      if(ADC_V<0)
  41.          {                
  42.          OLED_ShowChar(30,6,45,16);//顯示ASCII字符
  43.          OLED_Showf(0-ADC_V);

  44.          }
  45.                     OLED_ShowChar(90,6,37,16);//顯示ASCII字符  %
  46. }


  47. int main(void)
  48. {
  49.         uint16_t Temp_Value;
  50.         float ADC_Value=0.000;
  51.          char S;
  52.            DAC_Configuration();//初始化DAC模塊
  53.                   SYSTICK_Init();                     //延時(shí)函數(shù)初始化          
  54.                 NVIC_Configuration();          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)         LED_Init();                             //LED端口初始化
  55.         //                delay_1ms(8000);
  56.                 OLED_Init();                        //初始化OLED  
  57.                 OLED_Clear()          ;
  58.         OLED_ShowString(4,3,"Vo=",16);
  59.         OLED_ShowString(85,3,"V",16);
  60.         OLED_ShowString(4,6,"S=",16);
  61.         ADC_Configuration();
  62.         LED_GPIO_Config();//初始化LED
  63.         USART1_Config();

  64.         while (1)
  65.         {         float i;
  66.          float b,dac_data;
  67.             int AH;
  68.                 float AL;
  69.                 Temp_Value = ADC_GetConversionValue(ADC1);
  70.                 ADC_Value = (3.3/4096)*Temp_Value;                            /*將AD值轉(zhuǎn)換為電壓值*/
  71.                 printf("\r\n The Temp_Value is %d \r\n",Temp_Value);
  72.                 printf("\r\n The Value is %f \r\n",ADC_Value);
  73.                 AH=ADC_Value/1;
  74.             S=(ADC_Value-3.3)/3.3*100;

  75.                 AL=(int)(ADC_Value*1000)%1000;
  76.             OLED_ShowNum (32,3,AH,2,16);//顯示ASCII字符
  77.                 OLED_ShowChar(50,3,46,16);//顯示ASCII字符
  78.                 if(AL==0) OLED_ShowNum (52,6,AL,1,16);
  79.             OLED_ShowNum (52,3,AL,3,16);//顯示ASCII字符
  80.                 OLED_Showf(S);

  81.                 delay_ms(500);
  82.                 dac_data=0;
  83.                 i=0.151;
  84.                  dac_data=i/3.30*4096;
  85.         DAC_SetChannel1Data(DAC_Align_12b_R,dac_data);//設(shè)置輸出的電壓
  86. ……………………

  87. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
DC雙向和三相逆變.rar (918.22 KB, 下載次數(shù): 265)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:574779 發(fā)表于 2022-11-14 00:14 | 只看該作者
不錯(cuò),優(yōu)秀!
回復(fù)

使用道具 舉報(bào)

板凳
ID:614879 發(fā)表于 2022-12-19 15:18 | 只看該作者

不錯(cuò),有原理圖更好了
回復(fù)

使用道具 舉報(bào)

地板
ID:64589 發(fā)表于 2023-2-7 09:18 | 只看該作者
解壓密碼鏈接無(wú)效,打不開。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表