元器件:L298N、stm32f103C8T6核心板,四个电机代码已上传
单片机源程序如下:
- #include "hc_sr.h"
- void HC_SR_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOA时钟
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PA0接TRIG
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设为推挽输出模式
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化外设GPIO
-
- }
- void Trig_Init(void)
- {
- Trig_Pin = 0;
- delay_ms(30);
-
- Trig_Pin = 1;
- delay_us(10);
-
- Trig_Pin = 0;
- }
- u32 GetDistance(void)
- {
- short distance;
- u32 temp;
- delay_ms(10);
-
- if(TIM3CH1_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
- {
- temp=TIM3CH1_CAPTURE_STA&0X3F;
- temp*=65536;//溢出时间总和
- temp+=TIM3CH1_CAPTURE_VAL;//得到总的高电平时间
- // printf("HIGH:%d us\r\n",temp);//打印总的高点平时间
- TIM3CH1_CAPTURE_STA=0;//开启下一次捕获
- }
-
- distance = (temp * 340 / 200)/ 100 ; //单位cm
- printf("Channel 2 : %d cm\r\n",distance);
-
- return distance;
- }
复制代码
所有资料51hei提供下载:
hc_sr.7z
(181.42 KB, 下载次数: 52)
|