找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1747|回复: 0
收起左侧

用stm32C8T6检测波形和占空比程序 使用到了外部搭建的过零比较器

[复制链接]
ID:958854 发表于 2021-11-26 15:41 | 显示全部楼层 |阅读模式
测量占空比使用到了外部搭建的过零比较器

单片机源程序如下:
  1. #include "main.h"
  2. #include "stm32f10x.h"
  3. #include "stdio.h"
  4. #include "my_adc.h"
  5. #include "my_time.h"
  6. #include "my_gpio.h"
  7. #include "stm32f10x_usart.h"
  8. #include "public.h"
  9. #include "Lcd_f.h"
  10. #include "my_oled.h"

  11. int main()
  12. {
  13.         u16 i=0;
  14.         u8 kong[]={"           "};
  15.         
  16.         adc_init();
  17.         exti_init();//频率
  18.         GPIOA_init();//作电压调档 初始为GPIO7set 4档
  19.         GPIOB_init();
  20.         GPIOC_init();
  21.         TIMER2_init(65534,71);//频率计数
  22.         TIMER4_init(65534,71);
  23.         TIMER3_init(99,7199);//10ms
  24.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2
  25.         OLED_Init();                        //初始化OLED  
  26.         OLED_Clear();
  27.         time_buzzer=25;
  28.         while(1)
  29.         {
  30.                 if(signal_time==100)//如果1s没有收到触发外部中断(没有信号输入)
  31.                 {
  32.                         OLED_Clear();//清屏
  33.                 }else if(signal_time>100)//如果1s后没有检测到外部中断
  34.                                                 {
  35.                                                         OLED_no_signal();//显示无信号
  36.                                                         bit_clear=0;//清屏标志位
  37.                                                         BX=0;
  38.                                                 }
  39.                
  40.                 if(signal_time<100)//判断是否有信号
  41.                 {
  42.                           //=====显示=====//
  43.                                 if(bit_oled)//每1s更新标志位 更新显示信息
  44.                                 {
  45.                                         if(bit_clear==0)
  46.                                         {
  47.                                                 OLED_Clear();
  48.                                                 bit_clear=1;
  49.                                         }
  50.                                         Data_average();//求函数平均值
  51.                                         OLED_BX();//显示波形
  52.                                         OLED_frequency();//显示频率
  53. //                                        if(BX==2)
  54. //                                        {
  55.                                                 OLED_Duty_cycle();//显示占空比
  56. //                                        }
  57. //                                        else
  58. //                                        {
  59. //                                                OLED_ShowString(70,0,kong,12);
  60. //                                        }
  61.                                         OLED_Vpp();//显示峰峰值
  62.                                         OLED_TEXT();
  63.                                         bit_oled=0;
  64.                                 }
  65.                                 
  66.                                 if((Txet_BX_bit==1)&&(Duty_cycle_bit==1))
  67.                                 {
  68.                                   FB_pd_main_V();
  69.                                         Txet_BX_bit=0;
  70.                                         Duty_cycle_bit=0;
  71.                                 }
  72.                                 //====判断方波===//
  73.                                         Text_ADC();//检测电压范围
  74.                                 //=====ADC检测=====//
  75. //                                if(bit_Text_V==1)//如果标志位为1 检测电压范围
  76. //                                {
  77. //           
  78. //                                }else
  79. //                                {
  80. //                                if(Duty_cycle_bit)
  81. //                                {
  82. ////                                        FB_pd_main_V();
  83. //                                        Duty_cycle_bit=0;
  84. //                                }
  85. //                                
  86. //                   }
  87.                  }
  88.         }
  89. }
复制代码

Keil代码下载::
C8T6_text_BX_7.7z (597.37 KB, 下载次数: 21)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表