IC解密STM32磁悬浮
- IC解密/* Includes------------------------------------------------------------------*/
- IC解密//# include <stdio. h>
- IC解密//# include <stdlib. h>
- IC解密#include "stm32f10x.h"
- IC解密#include"lcd1602.h"
- //#include "misc.h"
- //#include "misc.c"
- #include<stm32f10x_adc.h>
- //#include<stm32f10x_flash.h>
- /********************************宏定义------------------------------------*/
- #define ADC1_DR_Address ((u32)0x4001244C)
- #define ADC3_DR_Address ((u32)0x40013C4C)
- /********************************变量定义------------------------------------*/
- ADC_InitTypeDefADC_InitStructure;
- DMA_InitTypeDefDMA_InitStructure;
- GPIO_InitTypeDefGPIO_InitStructure; //定义GPIO初始化结构体
- vu16 ADC1ConvertedValue = 0,ADC3ConvertedValue = 0;
- ErrorStatus HSEStartUpStatus;
- int AD_value;
- float CountV;
- float Std = (3.3)/4096;
- int CountV1;
- int CountV2;
- int CountV3;
- int hall;
- unsigned int jj = 0;
- //此表为 LED 的字模, 共阴数码管 0-9 -
- unsigned int Disp_Tab[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制
- //此表为8个数码管位选控制, 共阴数码管 1-8个 -
- unsigned intdispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位选控制 查表的方法控制
- unsigned int LedOut[10]; //变量定义
-
- /*********************************声明函数 -----------------------------------------------*/
- void RCC_Configuration(void);
- voidGPIO_Configuration(void);
- voidNVIC_Configuration(void);
- void delay_nms(u16 time);
- void Delay(vu32 nCount);
- /*******************************************************************************
- *
- * 主函数
- *
- *******************************************************************************/
- int main(void)
- { unsigned int LedNumVal = 0 ,LedNumVal1 = 0; //变量定义
- #ifdef DEBUG
- debug();
- #endif
-
- //RCC配置
- RCC_Configuration();
- // NVIC配置
- NVIC_Configuration();
- //GPIO配置
- GPIO_Configuration();
- //DMA1 通道配置
- DMA_DeInit(DMA1_Channel1); //设置成CH1 DMA中包含了7个通道(CH1-CH7)
- DMA_InitStructure.DMA_PeripheralBaseAddr =ADC1_DR_Address; //给DMA起始地址
- DMA_InitStructure.DMA_MemoryBaseAddr =(u32)&ADC1ConvertedValue;//DMA连接在内存中的变量地址
- DMA_InitStructure.DMA_DIR =DMA_DIR_PeripheralSRC; //设置DMA传输方向单向传输
- DMA_InitStructure.DMA_BufferSize = 1; //设置DMA在传输时缓冲区的长度
- DMA_InitStructure.DMA_PeripheralInc =DMA_PeripheralInc_Disable; //设置DMA的外设递增模式
- DMA_InitStructure.DMA_MemoryInc =DMA_MemoryInc_Disable;//设置DMA的内存递增模式
- DMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_HalfWord;//DMA在访问时每次操作的数据长度
- DMA_InitStructure.DMA_MemoryDataSize =DMA_MemoryDataSize_HalfWord;
- DMA_InitStructure.DMA_Mode =DMA_Mode_Circular;//DMA的传输模式,连续不断的循环模式
- DMA_InitStructure.DMA_Priority =DMA_Priority_High; //DMA的优先级别:可以分为4级
- DMA_InitStructure.DMA_M2M =DMA_M2M_Disable;//DMA的2个memory中的变量互相访问的
- DMA_Init(DMA1_Channel1, &DMA_InitStructure);//DMA整个模块初始化
- //开启DMA通道1
- DMA_Cmd(DMA1_Channel1, ENABLE);
-
- // ADC1 配置
- ADC_InitStructure.ADC_Mode =ADC_Mode_FastInterl; //ADC1工作在独立模式
- ADC_InitStructure.ADC_ScanConvMode =ENABLE;//使能扫描
- ADC_InitStructure.ADC_ContinuousConvMode =ENABLE;;//ADC转换工作在连续模式
- ADC_InitStructure.ADC_ExternalTrigConv =ADC_ExternalTrigConv_None;//由软件控制转换
- ADC_InitStructure.ADC_DataAlign =ADC_DataAlign_Right;//转换数据右对齐
- ADC_InitStructure.ADC_NbrOfChannel = 14;//转换通道为通道1
- ADC_Init(ADC1, &ADC_InitStructure); //初始化ADC
- //ADC1选择信道14,音序器等级1,采样时间239.5个周期
- ADC_RegularChannelConfig(ADC1,ADC_Channel_14, 1, ADC_SampleTime_28Cycles5);
- //使能ADC1模块DMA
- ADC_DMACmd(ADC1, ENABLE);
- //打开ADC1
- ADC_Cmd(ADC1, ENABLE);
- //重置ADC1校准寄存器
- ADC_ResetCalibration(ADC1);
- //等待ADC1校准重置完成
- while(ADC_GetResetCalibrationStatus(ADC1));
- //开始ADC1校准
- ADC_StartCalibration(ADC1);
- //等待ADC1校准完成
- while(ADC_GetCalibrationStatus(ADC1));
- //使能ADC1软件开始转换
- ADC_SoftwareStartConvCmd(ADC1, ENABLE);
- //*****************************************************************************//

芯片解密