📄 readme.htm
字号:
<td width="100">
<p>BAUDRATE</p>
</td>
<td>
<p>串口通信使用的波特率(bps)</p>
</td>
</tr>
<tr>
<td width="100">
<p>LEVELMODE</p>
</td>
<td>
<p>Bootloader触发模式(0=串口 1=电平)</p>
</td>
</tr>
<tr>
<td width="100">
<p>timeclk</p>
</td>
<td>
<p>基本时间间隔(ms)</p>
</td>
</tr>
<tr>
<td width="100">
<p>TimeOutCnt</p>
</td>
<td>
<p>Bootloader启动超时计数(<=255)</p>
</td>
</tr>
<tr>
<td width="100">
<p>TimeOutCntC</p>
</td>
<td>
<p>等待接收文件的超时计数(<=255)</p>
</td>
</tr>
<tr>
<td width="100">
<p>CONNECTCNT</p>
</td>
<td>
<p>联机密码长度</p>
</td>
</tr>
<tr>
<td width="100">
<p>ConnectKey</p>
</td>
<td>
<p>联机密码,任意16进制或字符串</p>
</td>
</tr>
<tr>
<td width="100">
<p>COMPORTNo</p>
</td>
<td>
<p>串口号,多串口的单片机是串口号(0/1/2...),单串口的单片机一般是空,也有的需要设置为0(特别是新的型号,如ATmega168)</p>
</td>
</tr>
<tr>
<td width="100">
<p>WDG_En</p>
</td>
<td>
<p>使能看门狗</p>
</td>
</tr>
<tr>
<td width="100">
<p>RS485</p>
</td>
<td>
<p>使能RS485/RS422</p>
</td>
</tr>
<tr>
<td width="100">
<p>RS485PORT</p>
</td>
<td>
<p>RS485/RS422发送的控制端口(A/B/C/D...)</p>
</td>
</tr>
<tr>
<td width="100">
<p>RS485TXEn</p>
</td>
<td>
<p>RS485/RS422发送控制的引脚(PC0/PC1/PC2...)</p>
</td>
</tr>
<tr>
<td width="100">
<p>LED_En</p>
</td>
<td>
<p>LED状态指示使能</p>
</td>
</tr>
<tr>
<td width="100">
<p>LEDPORT</p>
</td>
<td>
<p>LED使用的端口</p>
</td>
</tr>
<tr>
<td width="100">
<p>LEDPORTNo</p>
</td>
<td>
<p>LED使用的引脚</p>
</td>
</tr>
<tr>
<td width="100">
<p>InitDelay</p>
</td>
<td>
<p>额外的延时(某些型号的单片机需要,如ATmega8)</p>
</td>
</tr>
<tr>
<td width="100">
<p>VERBOSE</p>
</td>
<td>
<p>提示模式,显示更多的提示信息,方便超级终端下的交互输入</p>
</td>
</tr>
<tr>
<td width="100">
<p>CRCMODE</p>
</td>
<td>
<p>通信校验模式(0=XMODEM的CRC校验 1=简单的累加和)</p>
</td>
</tr>
<tr>
<td width="100">
<p><a name="BootStart">BootStart</a></p>
</td>
<td>
<p>Boot区起始地址: 按字节计算</p>
</td>
</tr>
<tr>
<td width="100">
<p>ChipCheck</p>
</td>
<td>
<p>校验写入的数据。这个参数必须和BootStart联合使用</p>
</td>
</tr>
</table>
<p><a href="#b0" name="b9">▲</a></p>
<h1>已测试的型号</h1>
<p>AVR通用Bootloader已经在多种型号的AVR单片机中测试通过,下面是我测试过的型号:</p>
<p> ATmega8<br>
ATmega88<br>
ATmeag64<br>
ATmega128<br>
ATmega162<br>
ATmega168<br>
ATmega169(Bufferfly)</p>
<p>下面是其他网友测试过的型号:</p>
<p> ATmega16<br>
ATmega164p<br>
ATmega32<br>
ATmega1280</p>
<p>如果你成功使用了不在上面列表中型号,请给我发<a href="mailto:shaoziyang@gmail.com?subject=AVRUB">EMail</a>,以便及时添加到列表中。</p>
<p><a href="#b0" name="b10">▲</a></p>
<h1>常见问题</h1>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<p>1.</p>
</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>怎样保护Bootloader区?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>为了保护Bootloader区本身不被意外改写,需要设置Bootloader区的保护。通常是将BLB1锁定位设置成模2或3,禁止对Bootloader区写操作。此外设置<a href="#BootStart">BootStart</a>也可以保护Bootloader区,超过BootStart的数据将被Bootloader所忽略,不会写入到Flash中。<br> </p>
</td>
</tr>
<tr>
<td valign="top">2.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>为什么需要在bootloader中使用看门狗?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>为了增加系统的稳定性,通常应当允许看门狗,这样在意外情况下可以由看门狗将系统复位,防止在升级过程中进入死循环。<br> </p>
</td>
</tr>
<tr>
<td valign="top">3.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -