芯片解密STM32+LDC1314纸张测量的程序
芯片解密单片机源程序如下:
- 芯片解密#include "delay.h"
- 芯片解密#include "sys.h"
- 芯片解密#include "usart.h"
- 芯片解密#include "main.h"
- 芯片解密#include "timer.h"
- 芯片解密#include "LDC1314.h"
- 芯片解密#include "xunji.h"
- #define Coin_Data 60 //检测硬币的差值
- #define Wire_Data 3 //检测铁丝的差值
- #define Speed_PWM 50
- #define flag_beep 4
- #define flag_ch0 0
- #define flag_ch1 1
- #define flag_ch2 2
- #define flag_ch3 3
- #define flag_ch4 5
- static int dif_val1,dif_val2;
- int dif_val1=0,dif_val2=0;
- uint32_t CH_Dif[4]={0,0,0,0};
- u8 step_flag = 0;
- u8 key_flag;
- uint32_t CH[4]={0};
- int val_init,val_10,val_15,val_20,val_30; //初始值
- float Step1to10_val,Step10to15_val,Step15to20_val,Step20to30_val;//每张纸的步进值
- u8 flag_Last[50]={0};
- unsigned long CH0_Data=0,CH1_Data=0,CH2_Data=0,CH3_Data=0;//传感器初始值
- int Paper_Num(int *CH_Dif,u8 flag);//测量纸张数量
- void Auto_cheak(void); //自检测函数
- u8 Key_cheak(void); //触摸按键检测函数,有触摸按键,返回1
- void Cal_Step_val(void);//计算各个步进值
- u8 Cal_Paper(int *CH_Dif);//粗略计算纸张数量,返回纸张所在步进区间标志位
- int function1(uint32_t CH_Dif1,int dif_val1);//根据采集的数据,计算纸张数量,纸张要求为1~15张
- int function2(uint32_t CH_Dif1,int dif_val2);//根据采集的数据,计算纸张数量,纸张要求为16~35张
- int main(void)
- {
- uint8_t retVal=0;//传感器自初始化返回值
- int i=0;
- int num=0;
- char *str;
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- OLED_Init();
- OLED_Display_On();
- OLED_Clear();
-
- uart_init(115200); //串口初始化为115200
- printf("uart Init_OK\r\n");
- //TIM2_Int_Init();
- //TIM3_Int_Init(799,0); //10KHz PWM
- //EXTIX_Init();
- I2C_INIT(); //IIC初始化,模拟IIC,用于ldc1314通信,使用PA11,PA12
- printf("IIC Init_OK\r\n");
- do //LDC1314初始化
- {
- printf("LCD Init_ing\r\n");
- retVal=2;
- retVal = InitLDC1314();//ldc1314初始化,若不成功则一直执行
- }while (retVal!= 1) ;
- delay_ms(100);
- //Auto_cheak();//自检
- OLED_Clear();
- while(1)
- {
- OLED_ShowString(0,0," Work Mode",16);
- OLED_ShowString(0,2,"Place Paper...",16);
- OLED_ShowString(0,4,"Place... ",16);
- // while(!Key_cheak())
- // {
- // delay_ms(10);
- // }//等待按键确认
- OLED_ShowString(0,4,"Place : OK ",16);//手动确认纸张放好
- for(i=0;i<50;i++)
- {
- LDC_read(CH);
- CH_Dif[1] += CH[1];
- delay_ms(10);
- }
- CH_Dif[1]=CH_Dif[1]/50;
- if(CH_Dif[1]<=7638)
- num=function1(CH_Dif[1],0);
- else
- num=function2(CH_Dif[1],0);
- printf("CH_Dif[1]=%d Paper : %d\r\n",CH_Dif[1],num);
- // while(!Key_cheak())
- // {
- // delay_ms(10);
- // }//等待按键确认
- CH_Dif[0]=0;
- CH_Dif[1]=0;
- CH_Dif[2]=0;
- }
- }

芯片解密