使用普通的USB转TTL模块,STC-ISP工具,可以给板子正常下载程序,然后突发奇想,用手里的ZigBee模块来实现无线下载。接线是:ZigBee模块接USB转TTL模块,连接电脑,然后另一个ZigBee模块连接单片机。
单片机和电脑可以通过ZigBee模块正常双向通讯。
已经完成了自动下载的功能,就是点击下载后不用手动冷启动。
但是使用ZigBee下载的时候,就出现下面的问题。
点击下载,出现下面的信息:
正在检测目标单片机 ...
单片机型号: STC12C5A60S2
固件版本号: 7.1.4I
当前芯片的硬件选项为:
. 下次冷启动后系统时钟源为外部晶体振荡器
. 当前的时钟频率: 19.485MHz
. 振荡器放大增益使能
. 复位引脚仍为复位脚
. RESET2引脚上无外部低压检测复位功能
. 上电复位时增加额外的复位延时
. 上电复位时,硬件不启动内部看门狗
. 上电自动启动内部看门狗时的预分频数为 : 256
. 空闲状态时看门狗定时器停止计数
. 启动看门狗后,软件可以修改分频数,但不能关闭看门狗
. P1.0和P1.1与下次下载无关
. 下次下载用户程序时,不擦除用户EEPROM区
单片机型号: STC12C5A60S2
固件版本号: 7.1.4I
下载失败 ! (6.85)
请确定是否有新版软件,请及时更新 !
单片机的现象是:
点击下载,单片机复位,然后STC-ISP显示信息一直到固件版本号,然后此时单片机就开始运行用户代码了,然后过一会(大概5S左右)出现下载失败和后面的字样。
使用有线正常下载的时候信息是这样:
正在检测目标单片机 ...
单片机型号: STC12C5A60S2
固件版本号: 7.1.4I
当前芯片的硬件选项为:
. 下次冷启动后系统时钟源为外部晶体振荡器
. 当前的时钟频率: 11.059MHz
. 振荡器放大增益使能
. 复位引脚仍为复位脚
. RESET2引脚上无外部低压检测复位功能
. 上电复位时增加额外的复位延时
. 上电复位时,硬件不启动内部看门狗
. 上电自动启动内部看门狗时的预分频数为 : 256
. 空闲状态时看门狗定时器停止计数
. 启动看门狗后,软件可以修改分频数,但不能关闭看门狗
. P1.0和P1.1与下次下载无关
. 下次下载用户程序时,不擦除用户EEPROM区
单片机型号: STC12C5A60S2
固件版本号: 7.1.4I
正在重新握手 ... 成功 [0.875"]
当前的波特率: 230400
正在擦除目标区域 ... 完成 ! [2.891"]
芯片出厂序列号 : D17EC3DA0B17C8
正在下载用户代码 ... 完成 ! [5.968"]
正在设置硬件选项 ... 完成 ! [0.031"]
更新后的硬件选项为:
. 下次冷启动后系统时钟源为外部晶体振荡器
. 当前的时钟频率: 11.059MHz
. 振荡器放大增益使能
. 复位引脚仍为复位脚
. RESET2引脚上无外部低压检测复位功能
. 上电复位时增加额外的复位延时
. 上电复位时,硬件不启动内部看门狗
. 上电自动启动内部看门狗时的预分频数为 : 256
. 空闲状态时看门狗定时器停止计数
. 启动看门狗后,软件可以修改分频数,但不能关闭看门狗
. P1.0和P1.1与下次下载无关
. 下次下载用户程序时,不擦除用户EEPROM区
. 芯片出厂序列号 : D17EC3DA0B17C8
单片机型号: STC12C5A60S2
固件版本号: 7.1.4I
操作成功 !
ZigBee的波特率设置为9600,用ZigBee下载的时候最大最小波特率都设置为了9600。
所以就是想请教一下大佬们,这大概是什么方面的问题呀。
我想的是不是因为ZigBee通信的延时造成了单片机在检测合法命令流的时候未检测到,然后直接运行了用户代码。
下面是两种下载方式的演示,第一个是有线,第二个是无线
有线下载
有线下载
无线下载
无线下载
|