標(biāo)題:
stm32f103C8T6驅(qū)動(dòng)超聲波小車源程序
[打印本頁]
作者:
1132296620
時(shí)間:
2019-10-9 20:56
標(biāo)題:
stm32f103C8T6驅(qū)動(dòng)超聲波小車源程序
元器件:L298N、stm32f103C8T6核心板,四個(gè)電機(jī)代碼已上傳
單片機(jī)源程序如下:
#include "hc_sr.h"
void HC_SR_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOA時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PA0接TRIG
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設(shè)為推挽輸出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化外設(shè)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;//溢出時(shí)間總和
temp+=TIM3CH1_CAPTURE_VAL;//得到總的高電平時(shí)間
// printf("HIGH:%d us\r\n",temp);//打印總的高點(diǎn)平時(shí)間
TIM3CH1_CAPTURE_STA=0;//開啟下一次捕獲
}
distance = (temp * 340 / 200)/ 100 ; //單位cm
printf("Channel 2 : %d cm\r\n",distance);
return distance;
}
復(fù)制代碼
所有資料51hei提供下載:
hc_sr.7z
(181.42 KB, 下載次數(shù): 52)
2019-10-10 01:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時(shí)間:
2019-10-10 01:08
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
猹的反殺生涯
時(shí)間:
2020-5-1 23:18
本帖最后由 猹的反殺生涯 于 2020-5-2 11:43 編輯
程序里的話PB5做Trig,PA6檢測(cè)高電平來接線后,可以
作者:
猹的反殺生涯
時(shí)間:
2020-5-2 11:42
猹的反殺生涯 發(fā)表于 2020-5-1 23:18
一點(diǎn)說明都沒有,按程序里的話PB5做Trig,PA6檢測(cè)高電平來接線后,完全沒有作用
是我錯(cuò)了,我直接用電腦做電源供電不夠,所以沒用,接上電池后可以了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1