这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» 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_LEN200

#define EN_USART1_RX1

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 跳转至

回复

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