智能车制作

 找回密码
 注册

扫一扫,访问微社区

STM32论坛
查看: 2898|回复: 6
打印 上一主题 下一主题

stm32红外传感器避障小车

[复制链接]

2

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
41
威望
18
贡献
21
兑换币
9
注册时间
2017-9-29
在线时间
1 小时
毕业学校
江西理工大学
跳转到指定楼层
1#
发表于 2017-9-30 19:19:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<span]
<span]
<span]#define PA1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)
<span]
<span]{
<span]        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
<span]        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
<span]        GPIO_Init(GPIOA,&GPIO_InitStructure);       
       
<span]        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
<span]        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
<span]}
<span]void NVIC_Configuration()
<span]        NVIC_InitTypeDef NVIC_InitStructure;
<span]        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
<span]        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
<span]        NVIC_Init(&NVIC_InitStructure);
<span]
<span]{
<span]        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
<span]        TIM_TimeBaseStructure.TIM_Prescaler = 7200;
<span]        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
<span]        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
<span]        NVIC_Configuration();//
<span]}
<span]void TIM3_IRQHandler(void)//
<span]        if(TIM_GetITStatus(TIM3,TIM_IT_Update) == SET)
<span]                void avoiding();
<span]        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
<span]
<span]{
<span]        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6);
<span]
<span]{
<span]        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_5);
<span]
<span]{
<span]        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_3);
<span]
<span]{
<span]        if((PA0 == 0)&&(PA1 == 1)&&(PA2 == 0))   left();
<span]        if(((PA0 == 1)&&(PA1 ==1)&&(PA2 ==0))||
<span]        if(((PA0 == 0)&&(PA1 ==1)&&(PA2 ==1))||
<span]        if((PA0 == 0)&&(PA1 == 0)&&(PA1 == 0))   right();       
<span]
<span]
<span]{
       
<span]        GPIO_Configuration();
<span]        while(1)
<span]                GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_5);
<span]        }
<span]       

我的小车只执行
while(1)
        {               
                GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_5);
                GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6);
        }
不知道怎么办,求各位大神帮帮忙,


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

2

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
41
威望
18
贡献
21
兑换币
9
注册时间
2017-9-29
在线时间
1 小时
毕业学校
江西理工大学
2#
 楼主| 发表于 2017-9-30 19:21:57 | 只看该作者
#include "stm32f10x.h"                  // Device header



#define PA0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
#define PA1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)
#define PA2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)

void GPIO_Configuration()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);       
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);       
}

void NVIC_Configuration()
{
        NVIC_InitTypeDef NVIC_InitStructure;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);
        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}

void TIM_Configuration()
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
        TIM_TimeBaseStructure.TIM_Period = 100-1;//10msòç3ö»ò¸üDÂ
        TIM_TimeBaseStructure.TIM_Prescaler = 7200;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
        TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
        NVIC_Configuration();//¶¨ê±Æ÷ÖD¶ÏÅäÖÃ
        TIM_Cmd(TIM3,ENABLE);
}

void TIM3_IRQHandler(void)//¶¨ê±Æ÷ÖD¶Ï
{
        if(TIM_GetITStatus(TIM3,TIM_IT_Update) == SET)
        {
                void avoiding();
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}

void up()
{
        GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_5);
        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6);
}

void left()
{
        GPIO_SetBits(GPIOA,GPIO_Pin_3);
        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_5);
}

void right()
{
        GPIO_SetBits(GPIOA,GPIO_Pin_5);
        GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_3);
}

void avoiding()
{
        if((PA0 == 1)&&(PA1 == 1)&&(PA2 == 1))   up();
        if((PA0 == 0)&&(PA1 == 1)&&(PA2 == 0))   left();
        if((PA0 == 1)&&(PA1 ==0)&&(PA2 ==1))     left();               
        if(((PA0 == 1)&&(PA1 ==1)&&(PA2 ==0))||
                 ((PA0 == 1)&&(PA1 ==0)&&(PA2 ==0)))   left();
        if(((PA0 == 0)&&(PA1 ==1)&&(PA2 ==1))||
                 ((PA0 == 0)&&(PA1 ==0)&&(PA2 ==1)))   right();
        if((PA0 == 0)&&(PA1 == 0)&&(PA1 == 0))   right();       
}



int main()
{
       
        GPIO_Configuration();
        TIM_Configuration();
        while(1)
        {               
                GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_5);
                GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6);
        }
}
       
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
41
威望
18
贡献
21
兑换币
9
注册时间
2017-9-29
在线时间
1 小时
毕业学校
江西理工大学
3#
 楼主| 发表于 2017-9-30 19:22:51 | 只看该作者
前面的是错的
回复 支持 反对

使用道具 举报

6

主题

83

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1627
威望
835
贡献
518
兑换币
540
注册时间
2017-1-6
在线时间
137 小时
毕业学校
古蔺中学
4#
发表于 2017-9-30 20:17:22 | 只看该作者
先去看看微机原理的中断那儿吧
回复 支持 反对

使用道具 举报

56

主题

1684

帖子

2

精华

版主

有所思,有所为。

Rank: 9Rank: 9Rank: 9

积分
9497

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章论坛骨干奖章

威望
6762
贡献
83
兑换币
3601
注册时间
2014-10-31
在线时间
1326 小时
5#
发表于 2017-10-9 19:14:30 | 只看该作者
:):):):):):)
回复 支持 反对

使用道具 举报

56

主题

1684

帖子

2

精华

版主

有所思,有所为。

Rank: 9Rank: 9Rank: 9

积分
9497

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章论坛骨干奖章

威望
6762
贡献
83
兑换币
3601
注册时间
2014-10-31
在线时间
1326 小时
6#
发表于 2017-10-9 19:14:47 | 只看该作者
:@   :o             
回复 支持 反对

使用道具 举报

10

主题

998

帖子

0

精华

版主

一个只会水的渣渣

Rank: 9Rank: 9Rank: 9

积分
22264

优秀会员奖章活跃会员奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
17390
贡献
3076
兑换币
2900
注册时间
2015-1-22
在线时间
899 小时
毕业学校
安一中
7#
发表于 2017-10-9 23:57:25 | 只看该作者
                  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-4-26 16:50 , Processed in 0.102157 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表