cc2530用蓝牙控制小车失败求帮

cc2530_ 2017-12-16 05:48:08

大家看看我代码
#include <ioCC2530.h>
#define IN1 P1_0
#define IN2 P1_1
#define IN3 P0_6
#define IN4 P0_7

void up (void) {IN1=IN3=0;IN2=IN4=1;} //小车向前
void down (void) {IN1=IN3=1;IN2=IN4=0;} //小车向后
void stop (void) {IN1=IN2=IN3=IN4=0;} //小车停止
void turn_right (void) {IN1=IN4=0;IN2=IN3=1;} //小车原地向右
void turn_left (void) {IN1=IN4=1;IN2=IN3=0;} //小车原地向左


void initUARTtest()
{
CLKCONCMD &= ~0x40;//设置时钟晶振为32MHZ
while(!(SLEEPSTA & (1<<6))); /*等待晶振稳定*/
CLKCONCMD &= ~0x07;/*时钟不分频*/
PERCFG = 0x00;//使用备用位置1 P0口
P0SEL = 0x0C;//P0用作外设:串口?
P2DIR &= ~0XC0; //串口0优先级最高?
U0CSR |= 0xC0; //UART方式
U0GCR = 8;
U0BAUD |=59; //设置波特率9600
UTX0IF = 0; //串口0发送中断标志清零?
URX0IE=1;
}


void PortInit()
{
P1DIR |=(1<<0); //P1_2为输出
P1DIR |=(1<<1); //P1_3为输出
P0DIR |=(1<<6); //P1_6为输出
P0DIR |=(1<<7); //P1_7为输出

P1SEL &=~(1<<0); //p1_2为普通io
P1SEL &=~(1<<1); //p1_3为普通io
P0SEL &=~(1<<6); //p1_6为普通io
P0SEL &=~(1<<7); //p1_7为普通io

}

char uart0_receive_byte(void) //接受蓝牙指令
{
while(URX0IF == 0);
URX0IF = 0;
return U0DBUF;
}


void main()
{
initUARTtest();
PortInit();
while(1)
{
char buf=u art0_receive_byte();
switch(buf)
{
case 'A':
up();
break;
case 'B':
down();
break;
case 'C':
turn_left();
break;
case 'D':
turn_right();
break;
case 'E':
stop();
break;

}
}
}
我不知道哪里有问题,供电用的是充电宝,我的蓝牙的代码应该是没问题,用手机可以控制LED灯,但是就是控制不了小车动。我试了直接写小车动的代码,没写蓝牙的代码进去,小车可以动,那说明H桥没问题。我搞了一个下午还是搞不动小车。
...全文
231 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cc2530_ 2017-12-17
  • 打赏
  • 举报
回复
谢谢,已经可以控制动力,原因是电压不够。
jklinux 2017-12-16
  • 打赏
  • 举报
回复
先确认下手机能否通过蓝牙与小车通信。

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧