完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本人大一新生,想要做一个蓝牙遥控小车。驱动是用的TB6612FNG,程序写完之后发现了一个问题。就是程序中的蓝牙接收不到,将定时器0去掉之后,没有了调速的功能,代码如下,跪求各位大神指点。
#include #include #define uchar unsigned char #define uint unsigned int unsigned char tmp; unsigned int c=0; uint Count; uint Degree=50; ***it PWMA=P2^0; ***it AIN2=P2^1; ***it AIN1=P2^2; ***it STBY=P2^3; ***it BIN1=P2^4; ***it BIN2=P2^5; ***it PWMB=P2^6; ***it beep=P2^7; //蜂鸣器 void init(); //串口初始化 void send(unsigned char a); //单字节发送函数 void ctrl(); //接收处理函数 void delay(unsigned int x) { unsigned int i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void Initialize_time(void) { EA=1; ET0=1; //EA=1;ET0=1;开启总中断、定时器0 // TMOD=0x22; //M1=1,M1=0;方式2 TH0 = 0XA3; //定时时间为100us TL0 = 0XA3; TR0=1; //启动定时器0,开始计数 } void timer0 (void) interrupt 1 //定时中断0子程序 { Count++; if(Count>=0 && Count<=Degree) { PWMA=0; PWMB=0; } else { PWMA=1; PWMB=1; } if(Count==200) Count=0; } void init() //串口初始化 { ES=0; //关中断 SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1, //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可 TMOD = 0x22; // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率 TH1=TL1=0xFD; // 波特率9600 (本次测试采用晶振为11.0592) PCON &= 0x7f; // 波特率不倍增 TR1 = 1; //定时器1开始工作,产生波特率 //发送标志位置0 TI=0; //接收标志位置0 RI=0; PT1=1; ES=1; } void send(unsigned char a) //单字节数据发送 { //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻 TI=0; SBUF=a; while(TI==0); TI=0; } void ctrl() //接收处理函数 { switch(tmp) { case '1': { AIN1=1; AIN2=0; BIN1=1; BIN2=0; PWMA=1; PWMB=1; send(tmp); break; } case '8': { PWMA=0; PWMB=0; send(tmp); } break; case '3': { AIN1=0; AIN2=0; BIN1=1; BIN2=0; PWMA=1; PWMB=1; send(tmp); } break; case '4': { AIN1=1; AIN2=0; BIN1=0; BIN2=0; PWMA=1; PWMB=1; send(tmp); } break; case '5': { AIN1=0; AIN2=1; BIN1=0; BIN2=1; PWMA=1; PWMB=1; send(tmp); } break; case '6': { beep=0; delay(50); beep=1; send(tmp); } break; case '7': { Degree++; if(Degree==180) { Degree=0; } send(tmp); } break; } } void main() { PWMA=1; PWMB=1; STBY=1; init(); // Initialize_time(); while(1) { if(RI==1) // 是否有数据到来 { RI = 0; tmp = SBUF; // 暂存接收到的数据 ctrl(); } } } |
|
相关推荐
3个回答
|
|
我遇到了和你一样的问题,敢问大佬是怎么解决的
|
|
|
|
敢问大佬怎么解决的
|
|
|
|
您好,是与单片机蓝牙接收不到数据吗,我测试都是正常啊,你看看你那些break;位置放的合理吗
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2450 浏览 1 评论
8123 浏览 0 评论
1941 浏览 0 评论
VL53L5CX #高达 8x8 多区域测距和 63°对角线宽视场 飞行时间多区域测距传感器
17322 浏览 0 评论
【罗姆传感器评估板试用体验连载】罗姆传感器整合进同一个示例程序
21964 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 13:50 , Processed in 0.628620 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号