欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32F103 HC-SR04模塊驅動C程序
[打印本頁]
作者:
user2402162
時間:
2019-2-28 16:30
標題:
STM32F103 HC-SR04模塊驅動C程序
希望對大家有用。
單片機源程序如下:
#include "stm32f10x.h"
#include "hcsr04.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#define Trig GPIO_Pin_4
#define Echo GPIO_Pin_6
float Distance;
void HCSR_Init(void)
{
GPIO_InitTypeDef GPIO_InitSture;
EXTI_InitTypeDef EXTI_InitSture;
NVIC_InitTypeDef NVIC_InitSture;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOE,ENABLE);
//配置IO端口
GPIO_InitSture.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitSture.GPIO_Pin=Trig; //將PE4于Trig相連
GPIO_InitSture.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitSture);
GPIO_InitSture.GPIO_Mode=GPIO_Mode_IPD;
GPIO_InitSture.GPIO_Pin=Echo; //將PE6于Echo相連
GPIO_InitSture.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitSture);
//中斷和6端口映射一起
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource6);
//外部中斷配置
EXTI_InitSture.EXTI_Line=EXTI_Line6;
EXTI_InitSture.EXTI_LineCmd=ENABLE;
EXTI_InitSture.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitSture.EXTI_Trigger=EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitSture);
//中斷優先級管理
NVIC_InitSture.NVIC_IRQChannel=EXTI9_5_IRQn;
NVIC_InitSture.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitSture.NVIC_IRQChannelPreemptionPriority=2;
NVIC_InitSture.NVIC_IRQChannelSubPriority=2;
NVIC_Init(&NVIC_InitSture);
}
void EXTI9_5_IRQHandler(void)
{
delay_us(10);
if(EXTI_GetITStatus(EXTI_Line6)!=RESET)
{
TIM_SetCounter(TIM3,0);
TIM_Cmd(TIM3,ENABLE);
while(GPIO_ReadInputDataBit(GPIOE,Echo)); //等待低電平
TIM_Cmd(TIM3,DISABLE);
Distance=TIM_GetCounter(TIM3)*34/2000;
if(Distance>0)
{
printf("Distance:%0.1f cm\r\n",Distance);
}
EXTI_ClearITPendingBit(EXTI_Line6);
}
}
void HCSR_Strat(void)
{
GPIO_SetBits(GPIOE,Trig); //將Trig設置為高電平
delay_us(20); //持續大于10us觸發,觸發超聲波模塊工作
GPIO_ResetBits(GPIOE,Trig);
}
void TIM3_LJW_Init(void) //TIM3初始化
{
NVIC_InitTypeDef NVIC_Struct; //定義NVIC結構體
TIM_TimeBaseInitTypeDef TIM_Struct; //定義TIM結構體
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 ,ENABLE); //初始化TIM3時鐘
TIM_Struct.TIM_ClockDivision=TIM_CKD_DIV1; //這里用不到 隨便寫的
TIM_Struct.TIM_CounterMode=TIM_CounterMode_Up; //向上計數
TIM_Struct.TIM_Period=65535; //重裝載值4999
// 72M/(7199+1)=10000->0.1ms * (4999+1) = 500ms
// (PSC+1)(ARR+1)/CK_PSC = 時間
TIM_Struct.TIM_Prescaler=71; //預分頻值7199
TIM_TimeBaseInit(TIM3,&TIM_Struct); //初始化TIM3
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //使能TIM3的更新中斷
NVIC_Struct.NVIC_IRQChannel=TIM3_IRQn ; //選擇TIM3通道
NVIC_Struct.NVIC_IRQChannelCmd=ENABLE; //使能通道
NVIC_Struct.NVIC_IRQChannelPreemptionPriority=1; //搶占優先級
NVIC_Struct.NVIC_IRQChannelSubPriority=1; //響應優先級
NVIC_Init(&NVIC_Struct); //初始化NVIC
//TIM_Cmd(TIM3,ENABLE); //啟動定時器
}
復制代碼
所有資料51hei提供下載:
HC-SR04.7z
(184.71 KB, 下載次數: 99)
2019-2-28 18:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2019-2-28 18:59
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1