
适用问题:
A、使用【RS232转TTL模块】下载受阻
B、串口能通信不能下载
解决方案:
硬件配置BOOT使得STM32不从Flash启动(拉高BOOT0)
实验平台:
STM32F10x最小系统
RS232转TTL模块(CH340G)
WIN10-在线编程器
正文
下载程序到芯片FLASH大概率会用到【RS232转TTL】(也就是通常说的USB转串口)模块部分模块会注明要求下载程序时“单片机冷启动”,冷启动是个啥?
冷启动和热启动都是复位呐,冷热的区分在于内部RAM是否被重新初始化;冷和热分别对应着上电复位和按键复位。也就是说,这两种启动方式按照单片机掉电与否区分的。
说到这儿至少能区别两种启动方式了,但有的最小系统上没有电源开关,或者直接使用UART1的VCC接口作电源,又该怎么办呢?
答案十分简单:直接把BOOT0拉高;也就是把BOOT用跳帽接到3V3就可以了。
#备注:
考虑到初次使用这类模块下载的小朋友,补充几点:
1、杜邦线接法:rx和tx分别是接受口和发送口,所以接法是接口rx和tx相连,而不是直觉上的rx接rx,tx接tx;
2、下载完成后,可能由于开发环境或者下载助手的配置单片机自行启动运行程序;但还是要把BOOT0拉低,否则手动复位后单片机就不是从烧录到FLASH的程序启动了,以至于引起部分小朋友的疑惑;
STM32下载器是一款可以用于编程和调试STM32单片机的设备,它可以将程序烧写到STM32的Flash存储器中,并且可以用来监视和调试STM32的运行状态,比如可以查看内部寄存器内容,这样可以帮助开发人员更好地理解程序运行状态,从而更快地定位问题所在。此外,STM32下载器还可以用于调试程序,可以设置断点,单步执行程序,查看变量的值,查看程序的运行路线等,帮助开发人员更快地定位程序问题所在,从而更快地完成开发任务。ISP 是一种在线下载程序的方式,下载的目的地是FLASH中,但是用ISP是从用户区开始的内存地址下载的比如说 0X80000--0X800020是用来存放用户的ISP引导程序的,当你复位并且启动ISP以后程序代码(一般是Bin)文件将会按照指定的地址下载到0x800020以后的区域。用FLASH启动程或者是从RAM区启动程序是相对的,是通过你的BOOT0和BOOT1决定的!FLASH是用来调试用的!欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)