4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容

示波器stm32程序

[复制链接]

等待验证会员

发表于 2018-7-6 04:01:58   76 查看 0 回复 显示全部楼层 倒序浏览
分享
希望大家多多支持,分享资料,共同学习

所有资料提供下载:
    OSC.rar  


单片机源程序如下:
  • #include "stm32f10x.h"
  • #include "systick.h"
  • #include "lcd.h"
  • #include "adc.h"
  • #include "stm32f10x_it.h"
  • #include "timer.h"
  • u16 j = 0;
  • float temp;
  • float temp1;
  • void nvic_init(void);
  • void rcc_init(void);
  • void gpio_init(void);
  • void clear_point(u16 hang)
  • {
  •         u8 index_clear_lie = 0;
  •         POINT_COLOR = DARKBLUE;
  •         for(index_clear_lie = 0;index_clear_lie <201;index_clear_lie++)
  •         {
  •                 lcd_huadian(hang,index_clear_lie);
  •         }
  •         POINT_COLOR=RED;
  • }
  • int main(void)
  • {
  •         SystemInit();                    //系统时钟初始化
  •         nvic_init();                   // 中断优先级配置
  •         rcc_init();                           //外设时钟配置
  •         gpio_init();                           //外设io口配置
  •         set_io0();
  •         key_init();
  •         systick_init();                   //滴答配置,
  •         adc_init();                                //adc配置
  •         LCD_Init();                                 //tft液晶初始化
  •         set_background();                  //初始化背景
  •         time_init();                        //定时器配置,测频率用的二个定时器
  •         time_enable();                        //同步开始计数
  •         get_value();
  •         vpp = get_vpp();
  •         while(1)
  •         {
  •                         for(j=ind;j<ind+250;j=j+1)
  •                         {
  •                 temp = a[j] * 3300 / 4096  *  25 /vcc_div;
  •                                 temp1 = a[j + 1] * 3300 / 4096 * 25 / vcc_div;
  •                                 clear_point(j-ind);
  •                                 if(temp>200)
  •                                 {
  •                                         temp=200;
  •                                 }
  •                                 if(temp<0)
  •                                 {
  •                                         temp=0;
  •                                 }
  •                                 if(temp1>200)
  •                                 {
  •                                         temp1=200;
  •                                 }
  •                                 if(temp1<0)
  •                                 {
  •                                         temp1=0;
  •                                 }
  •                                 lcd_huadian(j-ind,temp);
  •                                 lcd_huaxian(j-ind,temp,j-ind+1,temp1);
  •                                 hua_wang();
  •                         }
  •                         LCD_Show2Num(144,224,vpp,5,16,0);
  •                         get_value();
  •                         vpp = get_vpp();
  •         }
  • }
  • void nvic_init(void)
  • {
  •         NVIC_InitTypeDef    NVIC_InitTypeStruct;
  •         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  •         NVIC_InitTypeStruct.NVIC_IRQChannel = EXTI0_IRQn;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelPreemptionPriority =        2;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelSubPriority = 0;
  •         NVIC_Init(&NVIC_InitTypeStruct);
  •         NVIC_InitTypeStruct.NVIC_IRQChannel = EXTI15_10_IRQn;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelPreemptionPriority =        2;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelSubPriority = 1;
  •         NVIC_Init(&NVIC_InitTypeStruct);
  •         NVIC_InitTypeStruct.NVIC_IRQChannel = TIM2_IRQn;                     //配置中断优先级
  •         NVIC_InitTypeStruct.NVIC_IRQChannelPreemptionPriority =        0;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelSubPriority = 2;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelCmd = ENABLE;
  •         NVIC_Init(&NVIC_InitTypeStruct);
  •         NVIC_InitTypeStruct.NVIC_IRQChannel = TIM3_IRQn;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelPreemptionPriority =        0;
  •         NVIC_InitTypeStruct.NVIC_IRQChannelSubPriority = 3;
  •         NVIC_Init(&NVIC_InitTypeStruct);
  • }
  • void rcc_init(void)
  • {
  •         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
  •         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  •         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  •         RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
  •         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  •         RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
  •         RCC_ADCCLKConfig(RCC_PCLK2_Div6);
  •         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);
  • }
  • void gpio_init(void)
  • {
  •         GPIO_InitTypeDef GPIO_InitTypeStruct;
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_2;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 //外部时钟的,用来测频率的,
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  •         GPIO_Init(GPIOD, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_1;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                  //adc输入引脚
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_AIN;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                  //外部中断的io配置
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_IPU;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_0;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 //外部中断的io配置
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_IPD;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_8;                                         //定时器1触发ad转换的输出的那个口
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_AF_PP;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_3;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 // S3
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_4;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 //        S4
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_5;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 //        S5
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_6;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 //        S6
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  •         GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_7;
  •         GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;                                 // S7
  •         GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  •         GPIO_Init(GPIOA, &GPIO_InitTypeStruct);
  • }







标签:示波器 STM32

只有小组成员才能发言,加入小组>>

86个成员聚集在这个小组

加入小组

创建小组步骤

4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容
关闭

站长推荐 上一条 /9 下一条

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

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区