这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 求大神帮忙看看,蓝牙小车的程序,为什么就不能动

共2条 1/1 1 跳转至

求大神帮忙看看,蓝牙小车的程序,为什么就不能动

菜鸟
2019-07-14 15:18:25     打赏
//motor.h

#ifndef _MOTOR_H

#define _MOTOR_H



void go_init(void);
void back_init(void);
void left_init(void);
void right_init(void);
void stop_init(void);
void Motor_Init(void);

#define  enA1   PAout(1)
#define  enA2   PAout(2)
#define  enB1   PAout(3)
#define  enB2   PAout(4)
#define  enC1   PAout(5)
#define  enC2   PAout(6)
#define  enD1   PAout(7)
#define  enD2   PBout(0)

#endif

*********************************我是分界线*********************************
//motor.c的初始化


#include "STM32F10X.h"

#include "motor.h"


void Motor_Init(void)

{


GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_ResetBits(GPIOA,  GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);

    //MOTOR_APB_PERIPH_FUNG(MOTOr_APB_PORT , ENABLE);


}




void  go_init(void)

{

GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_7);

GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);

}


void  back_init(void)

{


GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);

GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_5|GPIO_Pin_7);

}


void  left_init(void)

{


GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6);

GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6);

}




void  right_init(void)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6);

}


void  stop_init(void)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);   

}


*******************************我是分界线*************************************************

//串口的初始化

#include "sys.h"

#include "usart.h"  

#include "motor.h"



#if SYSTEM_SUPPORT_OS

#include "includes.h"  

#endif


#if 1

#pragma import(__use_no_semihosting)             

           

struct __FILE 

int handle; 


}; 


FILE __stdout;       


_sys_exit(int x) 

x = x; 


int fputc(int ch, FILE *f)

{      

while((USART1->SR&0X40)==0);//Ñ­»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï   

    USART1->DR = (u8) ch;      

return ch;

}

#endif 



 /* 

int fputc(int ch, FILE *f)

{

USART_SendData(USART1, (uint8_t) ch);


while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}

   

    return ch;

}

int GetKey (void)  { 


    while (!(USART1->SR & USART_FLAG_RXNE));


    return ((int)(USART1->DR & 0x1FF));

}

*/

 

#if EN_USART1_RX   

u8 USART_RX_BUF[USART_REC_LEN];   


u16 USART_RX_STA=0;       

 

void uart_init(u32 bound){

  //GPIO¶Ë¿ÚÉèÖÃ

  GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);

  

//USART1_TX   GPIOA.9

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

  GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯GPIOA.9

   

 

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯GPIOA.10  


  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);


USART_InitStructure.USART_BaudRate = bound;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;


  USART_Init(USART1, &USART_InitStructure); 

  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

  USART_Cmd(USART1, ENABLE);                  

   

}


void USART1_IRQHandler(void)  

  

{  



     if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)     

      { 

USART_ClearITPendingBit(USART1, USART_IT_RXNE);  

      

 }

}

#endif


*********************************我是分界线************************************************


//usart.h头文件

#ifndef __USART_H

#define __USART_H

#include "stdio.h"

#include "sys.h" 


#define USART_REC_LEN  200 

#define EN_USART1_RX 1

 

extern u8  USART_RX_BUF[USART_REC_LEN]; 

extern u16 USART_RX_STA;         

void uart_init(u32 bound);




#endif





关键词: 小车     程序     帮忙     不能动     蓝牙     大神     看看     #de    

工程师
2019-07-15 00:07:57     打赏
2楼

蓝牙是透传? 如果是,先用串口调试助手,试试。先确保蓝牙是好的。



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]