极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 42341|回复: 7

arduino蓝牙无线自动下载程序

[复制链接]
发表于 2012-3-25 20:08:11 | 显示全部楼层 |阅读模式
arduino蓝牙无线自动下载程序测试成功,[img][/img]
下面随便写的程序,请各位不要用与商业,谢谢合作
#include<reg52.h>
#define BAUD 0xfe80 //22.1184
#define uchr unsigned char
#define uint unsigned int
sfr AUXR=0x8e;
sbit RXB=P3^0;
sbit TXB=P3^1;
sbit out=P3^4;
uint cnt;
typedef bit BOOL;
typedef unsigned char BYTE;
typedef unsigned int WORD;
BYTE TBUF,RBUF;
BYTE TDAT,RDAT;
BYTE TCNT,RCNT;
BYTE TBIT,RBIT;
BOOL TING,RING;
BOOL TEND,REND;
void UART_INIT();
void delay();
void delay1();
BYTE t,r;
BYTE buf[16];
void main()
{
TMOD=0x00;
AUXR=0x80;
TL0=BAUD;
TH0=BAUD>>8;
TR0=1;
ET0=1;
PT0=1;
EA=1;
UART_INIT();
while(1)
{
   if(REND)
   {
    REND=0;
          if(RBUF == 0x20)
          {
                         out=0;
                         delay();
                         delay();
          }

      if(RBUF == 0x20)
          {
                     EA=0;
                         out=1;
                         delay1();
                         delay1();
                         RBUF=0;
                         EA=1;
          }
   }
}
}
void tm0() interrupt 1 using 1
{
  if(RING)
  {
   if(--RCNT==0)
   {
   RCNT=3;
   if(--RBIT==0)
   {
    RBUF=RDAT;
        RING=0;
        REND=1;
   }
   else
   {
     RDAT>>=1;
         if(RXB)RDAT|=0X80;
    }
   }
  }
  else if(!RXB)
   {
     RING=1;
         RCNT=4;
         RBIT=9;
   }
  }
void UART_INIT()
{
  RING=0;
  REND=0;
  RCNT=0;
  out=1;
}
void delay()
{
  uint x,y;
  for(x=0;x<500;x++)
  {
    for(y=0;y<1000;y++);
        }
}
void delay1(uint u)
{
  uint x,y;
  for(x=0;x<3000;x++)
  {
    for(y=0;y<5000;y++);
        }
}
本自动下载是通过单片机STC15F104E实现的,成本很低的单片机,手机电池供电.
以下是缺点
蓝牙无线下载问题
1:数据量大了无法下载。
2:串口调试使用不方便,如9600就无法使用
3:如果是无线就要考虑充电电池供点电
4:成本高,一套收发蓝牙和板下来成本价格100左右
5:可靠性不是很高
以上问题还的不断解决
电路还没画了,好了上传,谢谢次论坛的教程,小小贴子给大家一点动力

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2012-3-25 20:11:37 | 显示全部楼层
数据量大了无法下载,可能是蓝牙模块的缓冲不够,这个是我的推断,还的不断的实验来证实,有兴趣的可以和我探讨.
回复 支持 反对

使用道具 举报

发表于 2012-3-25 21:14:36 | 显示全部楼层
给个小建议,程序写点必要的注释吧,不然不好跟别人交流啊
这里大家一般都用arduino,avr系列的,stc的比较少
arduino的uart有128b的缓冲,用bootloader下了个blink程序进去也没问题
应该不是蓝牙的问题吧
还有,tb上有25块的蓝牙,这样成本可以减少差不多一半了
回复 支持 反对

使用道具 举报

发表于 2012-10-24 16:26:19 | 显示全部楼层
有arduino版本不。 我现在用蓝牙 需要自己手去按reset.很麻烦。
回复 支持 反对

使用道具 举报

发表于 2013-5-13 18:18:03 | 显示全部楼层
大侠 你是怎么做到不用按rst就能重启的  比如说你的蓝牙那个口接到stc的int0上的   最好给个电路原理图 跪求  关键就是 你是如何判断 然后给out为1的 谢谢
回复 支持 反对

使用道具 举报

发表于 2013-11-16 17:20:18 | 显示全部楼层
程序跟无线下载没关系

iap而已
回复 支持 反对

使用道具 举报

发表于 2015-8-24 16:57:55 | 显示全部楼层
急求,用电脑下载测试成功,如何用手机通过蓝牙给arduino下载程序?跪谢qq:594301777
回复 支持 反对

使用道具 举报

发表于 2015-12-18 09:54:06 | 显示全部楼层
Malc 发表于 2012-3-25 21:14
给个小建议,程序写点必要的注释吧,不然不好跟别人交流啊
这里大家一般都用arduino,avr系列的,stc的比较 ...

你好,我遇到了蓝牙无线下载的问题,能否联系我指点一下?我的QQ是59741062,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-1 04:27 , Processed in 0.057842 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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