1、使用STM32CubeMX配置PA0为输出,PA1为下拉输入,PA0连接Trig脚,PA1连接Echo脚。
2、开启定时器2,添加代码:if(HAL_TIM_Base_Start猾诮沓靥(&htim2)!=HAL_OK) { printf("Error!\r\n"像粜杵泳); } HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_SET); HAL_Delay(1);//20us+¸ßµçƽ´¥·¢ÐźŠHAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_RESET); while(!HAL_GPIO_ReadPin(Echo_GPIO_Port, Echo_Pin));//µÈ´ý»ØÓ¦Ïß±ä¸ß v1=htim2.Instance->CNT; while(HAL_GPIO_ReadPin(Echo_GPIO_Port, Echo_Pin));//µÈ´ý»ØÓ¦Ïß±äµÍ v2=htim2.Instance->CNT; htim2.Instance->CNT=0;//Çå0¼ÆÊýÆ÷ distance=(v2-v1)*17/(float)1000; printf("distance=%0.1f cm!\r\n",distance);
3、效果如下:串口打印距离