芯片解密,单片机解密,IC解密,芯片破解,芯片复制,PCB抄板,软件开发

飞芯科技提供芯片解密,单片机解密,IC解密,芯片破解,芯片复制,PCB抄板,软件开发

芯片解密stm32单片机进行超声波测距

芯片解密直接上程序:

芯片解密主函数:

intmain(void)

{

unsignedintcount=0;

floatdistance=0;

floatdistancebuf[]={0};//这里的数组没有意义,是在调试程序的时候,怕测的距离有误差,把连续几次测到的数值放入数组中求平均值,以提高精度

/*USART1config1152008-N-1*/

USART1_Config();

Distance_Config();//距离转换函数,在上面的说明中有提到,但是具体的实现和上面的公式是不相同的

CLI();//关闭总中断

SEI();//开启总中断

TIm3_Config();//定时器初始化

GPIO_ResetBits(GPIOA,GPIO_Pin_5);//先拉低电平

while(1)

{

GPIO_SetBits(GPIOA,GPIO_Pin_5);//再拉高电平,这里拉低拉高电平是根据上面给出的测距原理来写的

Delay(30);//延时30个us,注意这里使用的是粗略的延时函数,测距原理中说是延时10个us,这里给30个us也无妨

//Delay(20);

//Delay(20);

GPIO_ResetBits(GPIOA,GPIO_Pin_5);

TIM3-》CNT=0;//TIM3的计数器清零

while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==0);//等待ECHO的高电平

TIM_Cmd(TIM3,ENABLE);//运行TIM3进行计数

while((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==1)&&(TIM3-》CNTARR-10));

TIM_Cmd(TIM3,DISABLE);

count=TIM3-》CNT;

printf(“count=%d”,count);

distance=ChangeDistance(count);

printf(“μ±?°?àà??a£o%fn”,distance);

Delay(20000);

Delay(20000);//这里的延时没有具体的意义,可以去掉

while(1);//程序测距一次后卡死在这里

}

}

距离转换函数

floatChangeDistance(unsignedintcout1)

{

floatdistance=0;

printf(“cou1=%dn”,cout1);

distance=cout1/58.0;

returndistance;

}

参数是TIM3-》CNT的计数,也就是高电平的时间,distance是测距距离



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.taihedz.cn
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信