STM32F407万用表集成装置设计 IC解密
IC解密代码(使用正点原子的库)
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "beep.h"
#include "key.h"
#include "lcd.h"
#include "dac.h"
#include "adc.h"
#include "timer.h"
#include "waveform.h"
#include "oscilloscope.h"
#include "timer.h"
#include "stm32f4xx_it.h"
#include "exti.h"
#include "touch.h"
#include "digital_multimeter.h"
//#include "string.h"
u8 welcom_flag=1;//welcom_flag为1时 进行主屏幕触摸检测
u8 SG_flag=1;//SG_flag为1 函数发生器才可以进行循环判断
u8 OSC_flag=1;//OSC_flag为1 数字示波器才可以进行循环
u8 DM_flag=1;//DM_flag为1 数字万用表才可以进行循环
//得到触摸屏的输入
u8 wel_get_keynum(void)
{
u8 key_touch=0;
tp_dev.scan(0);
if(tp_dev.sta&TP_PRES_DOWN) //触摸屏被按下
{
if(tp_dev.x[0]<280&&tp_dev.x[0]>20&&tp_dev.y[0]<340&&tp_dev.y[0]>140)key_touch=1;
if(tp_dev.x[0]<570&&tp_dev.x[0]>310&&tp_dev.y[0]<320&&tp_dev.y[0]>160)key_touch=2;
if(tp_dev.x[0]<760&&tp_dev.x[0]>620&&tp_dev.y[0]<390&&tp_dev.y[0]>110)key_touch=3;
}
return key_touch;
}
int main(void)
{
u8 welcome_key;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168);//初始化延时函数
uart_init(115200);//初始化串口波特率为115200
LED_Init();//初始化LED
BEEP_Init();//初始化蜂鸣器端口
KEY_Init();//按键初始化
LCD_Init();//初始化LCD FSMC接口
Adc_Init();//初始化ADC
DM_Adc_Init();//初始化数字万用表中的ADC
DacGPIO_Configuration();//DAC初始化
DM_Init();
TIM9_CH1_Cap_Init(0XFFFF,84-1); //以1Mhz的频率计数
//TIM5_PWM_Init(500-1,84-1); //84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz.
EXTIX_Init();//外部中断初始化
tp_dev.init();//初始化触摸屏
Welcome_Background();
while(welcom_flag==1)
{
welcome_key=wel_get_keynum();
if(welcom_flag==1)
{
switch(welcome_key)
{
case 1 :
{
welcom_flag=0;
OSC_flag=1;
LCD_Clear(WHITE);
Osc_Welcome();
break;
}
case 2 :
{
welcom_flag=0;
SG_flag=1;
LCD_Clear(WHITE);
SG_Welcome();
break;
}
case 3 :
{
welcom_flag=0;
DM_flag=1;
LCD_Clear(WHITE);
DM_Run();
break;
}
default :break;
}
}

芯片解密