热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

stm32程序下载方式总结

程序下载是一切的基础,对于搞单片机的人最开始学的就是程序下载,本人在刚开始学习51单片机的时候就只是知道串口下载,以至于什么usb-转串口的芯片的作用也没有去了解,直到现在学习使用了stm32都

程序下载是一切的基础,对于搞单片机的人最开始学的就是程序下载,本人在刚开始学习51单片机的时候就只是知道串口下载,以至于什么usb-转串口的芯片的作用也没有去了解,直到现在学习使用了stm32都快两年了,才第一次深入的考虑这些问题,想总结一下,当然这个都是参考网络上的一些牛人,借鉴一下别人的,然后自己整理了一下,为刚入门单片机的新手们简单解释一下,这些完全是本人的理解,不对之处,还请指正。

先总体说一下,stm32的程序下载方式(这里我主要讲解采用jlink,isp(串口在线编程),而用u-link,st-link应该也是可以的,不过本人没有真实的接触过),

大概有一下三种方式:

(1)j-flash下载(需要用到j-link),这个网上的说明很多,参考一下这个网址http://blog.chinaunix.net/uid-20788517-id-263475.html

(2)MDK配置下载(需要用到j-link),同样参考上面的网址。

(3)串口isp下载,这个我要重点的说明一下,说道这个用过51单片机的朋友都是非常熟悉的,我们下载程序的时候,都是借用第三方软件来对可执行程序进行下载的,而32单片机的这个下载方式被我们大家所熟知的是这个j-link下载,但是他的本意是对程序进行在线调试用的,如果单纯的下载程序使用,这个还是很大的,不如串口下载来的经济实惠。(只是现在已经习惯了用j-link的下载方式)。

下面先说说采用isp 下载的常用的两种电路。


这个是第一种下载电路,下面是第二种电路。


大家看到这两张图就会问 ch340和pl2303这两个是干神马用的,现在小编就开始给大家好好解释一下。

给大家讲讲 max232,ch340,pl2303,hl340的区别于联系。

首先大家要知道 ch340,pi2303,是同一类的芯片都是将USB信号转化为单片机的TTL串口信号(为什么要用这个芯片转呢,因为下载的程序最终要和单片机的串口引脚发送接受引脚进行连接,而他们的引脚只能识别TTL电平,没办法,咱们只能顺从他了,否则下载不了程序啊)。而max232芯片的作用是将TTL电平与RS232电平进行相互的转化。再说这个hl340,这是一个USB转串口线的型号,它等价于   ch340芯片+max3232芯片。

所以你就可以看明白了上图中的1是怎么转化的了,下面说一下过程,电脑-->USB线-->ch340-->max3232(以上三个部分相当于我们的一个usb转串口线hl340,输出的是TTL电平)-->串口九针接口-->max3232(再转化为TTL电平,因为单片机的串口只能接受TTL电平)-->单片机。结束了。

看来这个图1好像有点折腾的意思,当然图2就好一点,原来我们使用的51单片机开发版这两种电路都是有的,但是我们使用的都是第二种,连线简单不易出错。下面给大家上个截图吧!我原来在大学的时候用过的51单片机开发版!


当然如果是我们的stm32单片机开发版的话一般是么有线路2的,只有线路1这一种的。

但是这个想要用串口下载的时候,应该对这个stm32的boot 引脚进行一下设置,然后采用用ISP下载的,不细说了,就说常用的方法,把stm32的boot1引脚直接接地,然后用boot0引脚接拨码开关就可以了!开关控制其0-1状态,在flash和stm32出厂时预先装的bootloader程序,拨到bootload启动以后,要按一下复位,用第三方软件获取一下芯片信息,然后再下载,下载完以后,再拨会到flash,复位一下程序就可以执行了。

再说一下用j-link下载的时候,可以采用j-tag接口和swd接口,这个据说swd比较好,这个没有细研究,那就说说接线情况,最少接几根,在实际项目应用的时候,有些场合对板子大小有要求,所以希望下载用的引脚越少越好,下面是j-tag下最小引脚图(参考网址http://www.it165.net/embed/html/201308/2332.html)。


下一个图是swd引脚图


上面两个图就是验证一下,能否下载进去,最终是可以下载进去的。


推荐阅读
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • 本文探讨了在 PHP 的 Zend 框架下,使用 PHPUnit 进行单元测试时遇到的 Zend_Controller_Response_Exception 错误,并提供了解决方案。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文介绍了蓝牙低功耗(BLE)中的通用属性配置文件(GATT),包括其角色、层次结构、属性、特性和服务等内容。 ... [详细]
  • 网络安全实验:Telnet与SSH服务对比及抓包分析
    本实验旨在对比Telnet和SSH两种安全通信协议的服务差异,并通过搭建服务器和使用Wireshark抓包工具进行详细分析。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文详细介绍了Hive中用于处理日期和时间的各种函数,包括UNIX时间戳与日期之间的转换、日期提取以及日期计算等,帮助读者更好地理解和使用这些函数。 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 探索OpenWrt中的LuCI框架
    本文深入探讨了OpenWrt系统中轻量级HTTP服务器uhttpd的工作原理及其配置,重点介绍了LuCI界面的实现机制。 ... [详细]
  • 本文探讨了如何在Angular项目中处理URL重写时遇到的参数缺失问题,并提供了一种有效的解决方案。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 宝塔面板下启用HTTPS的详细指南
    本文提供了在宝塔面板环境中配置HTTPS的具体步骤,确保您的网站通信更加安全可靠。 ... [详细]
author-avatar
mobiledu2502900255
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有