找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1883|回复: 2
收起左侧

基于stm32f103ZE单片机的小车蓝牙控制程序

[复制链接]
ID:713074 发表于 2020-8-6 00:04 | 显示全部楼层 |阅读模式
//部分代码
//红外遥控函数

#include "IRCtrol.h"
#include "interface.h"

unsigned char ir_rec_flag=0;
unsigned char IRCOM[4];
void Time3Init(void)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
    TIM_TimeBaseStructure.TIM_Period = 1;
    TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1);//72M / 72 = 1us
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
}
void DelayUóê±s(vu32 nCount)
{
  u16 TIMCounter = nCount;
  TIM_Cmd(TIM3, ENABLE);
  TIM_SetCounter(TIM3, TIMCounter);
  while (TIMCounter>1)
  {
    TIMCounter = TIM_GetCounter(TIM3);
  }
  TIM_Cmd(TIM3, DISABLE);
}
void IRCtrolInit(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        EXTI_InitTypeDef         EXTI_InitStructure
        NVIC_InitTypeDef NVIC_InitStructure
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
        GPIO_InitStructure.GPIO_Pin = IRIN_PIN;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz
        GPIO_Init(IRIN_GPIO , &GPIO_InitStructure);
               
        GPIO_EXTILineConfig(IRIN_PORTSOURCE , IRIN_PINSOURCE);
        EXTI_InitStructure.EXTI_Line = IRIN_EXITLINE;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt
        EXTI_InitStructure.EXTI_LineCmd = ENABLE
        EXTI_Init(&EXTI_InitStructure);//½«ÅäÖÃoÃμÄ2ÎêyD′èë¼Ä′æÆ÷
                        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
        NVIC_InitStructure.NVIC_IRQChannel =         IRIN_IRQCH;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        
        Time3Init();
}void DelayIr(unsigned char x)  
{
  while(x--)
{
  DelayUs(140);
}
}

void IRIntIsr(void)
{
  unsigned char j,k,N=0;
         DelayIr(15);
         if (IRIN==1)
     {
           return;
          }
                 continue_time = 40

  while (!IRIN)        
    {DelayIr(1);}

for (j=0;j<4;j++)      
{
  for (k=0;k<8;k++)      
  {
   while (IRIN)   
     {DelayIr(1);}
    while (!IRIN)      
     {DelayIr(1);}
     while (IRIN)        
      {
    DelayIr(1);
    N++;           
    if (N>=30)
         {
         return;}  
      }              
     IRCOM[j]=IRCOM[j] >> 1;         
     if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
     N=0;
  }//end for k
}//end for j

        k = ~IRCOM[3];
   if (IRCOM[2] != k)
   {
     return; }
         
                                 switch(IRCOM[2])
                 {
                         case 0x46: ctrl_comm = COMM_UP;break;
                         case 0x15: ctrl_comm = COMM_DOWN;break;
                         case 0x44: ctrl_comm = COMM_LEFT;break;
                         case 0x43: ctrl_comm = COMM_RIGHT;break;
                         case 0x40: ctrl_comm = COMM_STOP;break;
                         default :  return;
                 }
                 ir_rec_flag = 1;
        
}


小车蓝牙遥控实验.7z

180.82 KB, 下载次数: 27, 下载积分: 黑币 -5

蓝牙控制

回复

使用道具 举报

ID:1041356 发表于 2022-8-4 11:04 | 显示全部楼层
你好,我在手机app上长按前进的时候,小车只会前进一步,不会持续前进,请问要怎么解决?
回复

使用道具 举报

ID:74784 发表于 2022-8-5 11:37 | 显示全部楼层
jane4869 发表于 2022-8-4 11:04
你好,我在手机app上长按前进的时候,小车只会前进一步,不会持续前进,请问要怎么解决?

他的代码有问题。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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