stm32学习之ISP下载笔记总结(6页).doc
-stm32学习之ISP下载笔记总结-第 6 页ISP下载:STM32的下载口就是串口1(不能为重映射的串口一) ,当BOOT0设为1,BOOT1设为0,上电复位或按复位键后STM32就进入ISP状态。异常检查步骤:1、 检查你用的串口线确实是交叉线,并且线是良好的;2、请确认你的PC机串口是能正常使用的;3、BOOT0、BOOT1的跳线位正确;4、如果上面检查后还不能用,请检查用的串口电平转换芯片是不是MAX202,芯片供电电压是否3.3V,芯片各脚的电压是不正常。如果确认是MAX202并使用供电,并且通信不正常,建议用MAX3232更换。问题俺有个199元的集成仿真器STM32板(第二版),是否可以直接用串口ISP下载程序进行"裸奔裸调"?能否给个ISP软件的链接?谢谢!软件可以自己编写吗?因为可能通用的ISP很难完全达到用户的需求.有几线控制(不包括地线). 除了TX,RX还有其他线吗?如RTS,DTR等.如果只有TX,RX两线,那么ISP是搞软件握手?还是要硬件配合?不会是要跳线吧?如果是需要几个跳线?俺想最好不要超过2根线,否则用PC的串口实现功能切换口线可能不够.谢谢!俺先只有这3个(实际是1个)问题回答其实按楼上的说法就是一个问题。首先可以到ST的网站上下载最新的Bootloader程序,和公开的BootLoader协议手册。这个bootloader指的是固化在STM32的System memory内的,不是User Memory那个需要自己动手编程进去的。下载地址:1、所有已公开的STM32资料:ocs-110.html#Application%20Note2、STM32固化的BootLoader协议:3、STM32固化的BootLoader的上位机PC端程序:4、STM32固化的BootLoader的上位机PC端程序使用说明:5、STM32的Flash编程使用说明:对于Bootload只要RxD、TxD,通过软件方式握手。另有回答:四楼的已经基本上讲的非常详细了,针对7楼的问题我补充两点:1) Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作。2)STM32中的Bootloader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。在另一个帖子中还有讨论这个问题的,也许对理解有所帮助:深入解释:不过听香主的ISP解说,俺琢磨它的ISP也是要又硬件握手的.1) Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作。2)STM32中的Bootloader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。"需要设置Boot1和Boot0启动System Memory中的Bootloader"从1)中能"听到"Boot1和Boot0需要某个固定电平信号才能进入ISP模式.在工控中应该如此,这样安全系数很提高很多"烧写完成后,再重新设置Boot1和Boot0启动Flash中你自己的程序,进入正常操作"再"听说"后感觉要回到运行状态,必须要设置Boot1和Boot0为其他的某个固定电平信号.这么说2者的信号组合不同(密码),就会在reset后进入不同的"分枝"?因为在产品定型后,软件的升级当然用ISP较好,应该比USB好些,因为要考虑工业现场和通讯距离问题.但肯定不能打开机壳来转换ISP和RUN方式,所以要通过外部对Boot1和Boot0控制以实现不开壳来ISP升级产品的软件.如果菜农说得(理解)对了,那么STM32做产品俺是铁了心了下面是俺在LPCARM上实现的"不开壳来ISP升级"3年来很完美,现场改程序很方便而且本身串口就是做数据采集的,所以俺期待香主的回答是肯定的那么,STM32的ISP软件可以控制其他232信号吗?就像LPCARM的DTR/RTS?估计STM32不会这样做的,它会感觉NXP会笑话它的"牛人是不会抄袭的"可是一定害苦了贫民百姓所以俺肯定要自己编写STM32的ISP软件这样可以完成远程数据通讯附带ISP软件升级再次感谢香帮主的教诲!LPCARM之ISP设计思路和应用详解stm32及其软件的使用经验分享(初学篇)发布: 2009-5-20 16:30 | 作者: hnrain | 查看: 771次Ulink下载HEX 文件 可以创建一个 Vision3 项目用来下载HEX文件到flash里面。 1. 在菜单中Project - New Project. 创建一个Vision项目; 2. 在芯片库中选择你要下载的arm芯片类型但不copy Startup 代码到项目中; 3. 在菜单Project - Options for Target Output写上hex的文件名字跟你要下载的hex名字相同,记得要把后缀.hex也写上。 4. 把.hex文件放到你建立的项目文件目录里,在flash菜单中选择Flash Download命令 进行 hex下载. .stm32103 i/0 口速率和 外部总线问题. 1.速率 2.没有外部总线用在小系统里,小存储器 4.外设总线其实是在cpu内部的,没有引出来。外部总线是引出来的总线 ,外 部 总线一般指外接存储器 的Data,Address、RE、WE、CE这些线的组合 .IAR生成bin文件.(1)在options->linker ->output->other选中->output里选择raw-binary,module-local里选择Include all,其余默认;(2) options->linker ->Extra Output->generate output file->format->output format 选择intel extended,override default 不选中,format variant 里面选择none;(3)结果*.bin在 工程的flash文件夹下的exe文件夹里面。.EK_STM32F在RAM里调试IAR.硬件设置:(1) BOOT0/1开关拨到0/0处项目设置:project->option(Alt+F7):(1)C/C+ Compiler-> Preprocessor tab-> change "VECT_TAB_FLASH" to "VECT_TAB_RAM" in Defined symbols dialogue(2)Linker-> Config -> linker command file : choose $PROJ_DIR$(3)Debugger-> Download tab: 四项都不打钩。就可以将程序下载到ram中,并在ram中调试啦。如果想在RAM中调试需要修改的地方如下:1, Options -> C/C+ Compiler -> Preprocessor选项卡中的Defined symbols项,将VECT_TAB_FLASH改为VECT_TAB_RAM。2, Options -> Linke -> Config选项卡中的Linker command file项,选择。3, Options -> Debugger -> Download选项卡中,取消对Verify download和Use flash loaders的选择。4,调整板子上的BOOT开关。.解决调试jtag复用 下载不了程序的问题. 1.用isp通过串口下载一个新程序 2.在ram中调试,下载新的程序