欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
stm32紅外+超聲波的源碼
[打印本頁]
作者:
asdasdsd
時間:
2018-6-8 17:13
標(biāo)題:
stm32紅外+超聲波的源碼
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "chao.h"
#include "remote.h"
#include "timer.h"
#define L2 PBin(14)
#define R2 PBin(15)
uint16_t spd=300;
u8 last;
u8 last1;
u8 last2;
u8 last3;
u16 pp=400;
void dingyi()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//紅外
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
void shizhong_Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
dingyi();
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
TIM_TimeBaseStructure.TIM_Period = 889; //設(shè)置在下一個更新事件裝入活動的自動重裝載寄存器周期的值 80K
TIM_TimeBaseStructure.TIM_Prescaler =0; //設(shè)置用來作為TIMx時鐘頻率除數(shù)的預(yù)分頻值 不分頻
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //設(shè)置時鐘分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計數(shù)模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時間基數(shù)單位
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時器模式:TIM脈沖寬度調(diào)制模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
TIM_OCInitStructure.TIM_Pulse = 0; //設(shè)置待裝入捕獲比較寄存器的脈沖值
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
TIM_OC1Init(TIM3, &TIM_OCInitStructure); //根據(jù)TIM_OCInitStruct中指定的參數(shù)初始化外設(shè)TIMx
TIM_OC2Init(TIM3, &TIM_OCInitStructure);
TIM_OC3Init(TIM4, &TIM_OCInitStructure);
TIM_OC4Init(TIM4, &TIM_OCInitStructure);
TIM_CtrlPWMOutputs(TIM3,ENABLE); //MOE 主輸出使能
TIM_CtrlPWMOutputs(TIM4,ENABLE);
TIM_ARRPreloadConfig(TIM3, ENABLE); //使能TIMx在ARR上的預(yù)裝載寄存器
TIM_ARRPreloadConfig(TIM4, ENABLE);
TIM_Cmd(TIM3, ENABLE); //使能TIM1
TIM_Cmd(TIM4, ENABLE);
}
void qianjin(uint16_t spd)
{
TIM_SetCompare1(TIM3,899); //INT1
TIM_SetCompare2(TIM3,spd); //ibt2
TIM_SetCompare3(TIM4,spd);
TIM_SetCompare4(TIM4,899);
}
void zuozhuan(uint16_t spd)
{
TIM_SetCompare1(TIM3,spd);
TIM_SetCompare2(TIM3,899);
TIM_SetCompare3(TIM4,spd);
TIM_SetCompare4(TIM4,899);
}
void youzhuan(uint16_t spd)
{
TIM_SetCompare1(TIM3,899);
TIM_SetCompare2(TIM3,spd);
TIM_SetCompare3(TIM4,899);
TIM_SetCompare4(TIM4,spd);
}
void shache(uint16_t spd)
{
TIM_SetCompare1(TIM3,899);
TIM_SetCompare2(TIM3,899);
TIM_SetCompare3(TIM4,899);
TIM_SetCompare4(TIM4,899);
}
void back(uint16_t spd)
{
TIM_SetCompare1(TIM3,spd);
TIM_SetCompare2(TIM3,899);
TIM_SetCompare3(TIM4,899);
TIM_SetCompare4(TIM4,spd);
}
//紅外壁障
void hongzhang(uint16_t spd)
{
if(L2==1 && R2==1) //沒有障礙
qianjin(spd);
else if(L2 ==0 && R2 == 1) //左邊有障礙
{
back(spd);
delay_ms(spd/2);
youzhuan(spd);
delay_ms(spd/2);
}
else if(L2 ==1 && R2 == 0) //右邊有障礙
{
back(spd);
delay_ms(spd/2);
zuozhuan(spd);
delay_ms(spd/2);
}
else //左右都有障礙
{
back(spd);
delay_ms(spd/2);
youzhuan(spd);
delay_ms(spd/2);
}
}
int main(void)//
{
u8 key;
u8 key1;
u8 key2;
u8 key3;
//u8 t=0;
u8 *str=0;
u8 x=0;
delay_init(); //延時函數(shù)初始?
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級分組2
uart_init(9600); //串口初始化為9600
shizhong_Init();
TIM2_Cap_Init(0XFFFF,72-1); //以1Mhz的頻率計數(shù) ;
CSB_Init();
Remote_Init();
while(1)
{
key=Remote_Scan();
if(!key){key=last;}
if(key)
{
switch(key)
{
case 152:str="2";
{
hongzhang(spd);
key2=Remote_Scan();
if(!key2){key2=last2;}
if(key2==66)
{
shache(spd);
last2=key2;
}
else
last=key;
break;
}
case 176:str="3";
{
chaosheng();
key3=Remote_Scan();
if(!key3){key3=last3;}
if(key3==66)
{
shache(spd);
last3=key3;
}
else
last=key;
break;
}
}
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
紅外+超聲波.rar
(331.61 KB, 下載次數(shù): 11)
2018-6-9 04:08 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1