STM32的交流电流测量系统
IC解密单片机源程序如下:
- IC解密#include "Init.h"
- IC解密#include "stdio.h"
- IC解密unsigned char flag=0;
- unsigned int x;
- unsigned int t;
- unsigned int m;
- void uart1_putc(unsigned char c)
- {
- while(!(UART1_SR&(1<<6))&&(!(UART1_SR&(1<<7))));//判断状态的6.7位
- //while(((UART1_SR>>6)&3)!=3);
- UART1_DR=c; // 数据传给数据寄存器,发送
- }
- int fputc(int ch,FILE *f)
- {
- uart1_putc(ch);
- return(ch);
- }
- void EXTI4_IRQHandler(void)
- {
- if(!( GPIOE_IDR&1<<4))
- {
- delay_ms(5000);
- if(GPIOE_IDR&(1<<4))
- if(EXTI_PR&(1<<4))
- {
- flag++;
- if(flag==2)
- flag=0;
- EXTI_PR=1<<4;
- }
- }
- }
- void TIM2_IRQHandler() //TIM2中断处理函数
- {
- if(TIM2_SR &1)//溢出中断
- {
- flag=~flag;//把数据传给flag,flag接收.
- }
- TIM2_SR &=0;//清除中断标志位
- }
- void ADC1_2_IRQHandler () //中断处理函数
- {
- //while(!(ADC1_SR&1<<1));lag
- //flag=1;
- //printf("中断开启 %d\r\n",flag);
- x=ADC1_DR;
- }
- int main(void)
- { float adcx;
- float temp;
- RCC_APB2ENR|=0x48;
- GPIOB_CRL|=0X200000;
- GPIOE_CRL|=0X200000; //灯的使能
- RCC_APB2ENR|=0X8;
- GPIOB_CRH=3<<0; //蜂鸣器的使能
- Stm32_Clock_Init(9); //时钟初始化函数
- Stm32_UART1_Int_Init(); //串口中断初始化函数
- Stm32_Uart1_Init(); //串口初始化函数
- Stm32_TIMER2_Int_Init(); //中断NVIC配置函数
- Stm32_TIMER2_Init(); //定时器初始化函数
- Stm32_Adc_Init(); //ADC初始化函数
- Stm32_ADC1_Int_Init(); //ADC中断初始化函数
- Stm32_Int_Init(); //按键初始化函数
- printf("准备就绪!!!\r\n"); //Printf打印
- while(1)

芯片解密