没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32F103入门与实战:霸道教程
"《零死角玩转STM32—F103霸道》是一本针对STM32F103单片机的详尽学习教程,特别适合初学者使用。教程分为基础入门篇和提高篇,强调循序渐进的学习路径。入门篇需按照章节顺序进行,确保基础知识扎实,而提高篇则鼓励根据个人需求进行跳跃式学习,灵活掌握高级例程。 教程的参考资料主要包括STM32F10X中文参考手册和Cortex-M3权威指南,官方文档提供了详尽且全面的寄存器描述,尽管书中可能不会详细列出,但强烈建议在阅读过程中参照这些手册以提升理解。作者采用生动的编写方式,每个章节围绕一个特定外设展开,包括外设简介、功能框图分析和代码讲解。外设功能框图分析是关键部分,通过理解每个组件的作用,学习者能够深入掌握外设的使用,并对其他类似单片机有迁移能力。 本书的配套硬件是秉火STM32-F103ZE-霸道,使用这款硬件平台进行实验,可以有效避免移植过程中的常见问题,显著提升学习效率。同时,教程还提供了技术论坛(www.firebbs.cn),学习者在遇到难题时可以在论坛寻求帮助,形成一个互动的学习环境。 《零死角玩转STM32—F103霸道》旨在通过全面和实用的教学方法,帮助读者系统地学习和运用STM32F103,无论是新手还是进阶者,都能从中获益良多。"
资源详情
资源推荐
零死角玩转 STM32F103—霸道
论坛:www.firebbs.cn 16 / 898 淘宝:https://fire-stm32.taobao.com
图 4-4 ISP 下载配置
图 4-5 ISP 下载成功
零死角玩转 STM32F103—霸道
论坛:www.firebbs.cn 17 / 898 淘宝:https://fire-stm32.taobao.com
4.4 ISP 一键下载原理分析
4.4.1 ISP 简介
ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最
终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用 ISP 方式擦除或再
编程。
ISP 的时候需要用到(bootloader)自举程序,自举程序存储在 STM32 器件的内部自举
ROM 存储器(系统存储器)中。其主要任务是通过一种可用的串行外设( USART、 CAN、
USB、 I2C 等)将应用程序下载到内部 Flash 中。每种串行接口都定义了相应的通信协议,
其中包含兼容的命令集和序列。
4.4.2 ISP 普通下载
现在我们针对 USART1 的 ISP 进行分析,通常的 ISP 的步骤如下:
1. 电脑通过 USB 转串口线连接 STM32 的 USART1,并打开电脑端的上位机;
2. 设置跳线保持 BOOT0 为高电平,BOOT1 为低电平;
3. 复位单片机使其进入 bootloader 模式,通过上位机下载程序;
4. 下载完毕,设置跳线保持 BOOT0 为低电平,BOOT1 为低电平;
5. 复位单片机即可启动用户代码,正常运行。
以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 ISP 的
原理认识,一键 ISP 就诞生了,它需要做的事情就是用上位机去控制 BOOT0 脚和单片机的
复位脚,原理图如下:
零死角玩转 STM32F103—霸道
论坛:www.firebbs.cn 19 / 898 淘宝:https://fire-stm32.taobao.com
1
1
内部 SRAM
4.4.4 ISP 一键下载
USB 转串口估计大家都很熟悉,一般都是用到 RXD 和 TXD 这两个口,一键 ISP 电路
中我们需要用 USB 转串口的芯片的 DTR 口和 RTS 口来控制单片机的 BOOT0 和 NRST,原
理如下:
1. 通过上位机控制 U6(CH340G)的 RTS 脚为低电平,Q1 导通,BOOT0 的电平上拉为
高电平。
2. 通过上位机控制 U6(CH340G)的 DTR 脚为高电平,由于 RTS 为低电平,Q2 导通,
U8 的 2 脚为低电平,U18 为一个模拟开关,使能端由 4 脚控制,默认高电平,U18
的 1 脚和 2 脚导通,所以 NRST 为低电平系统复位。
3. 单片机进入 ISP 模式,此时可以将 DTR 脚设置为低电平,RTS 设置为高电平。Q1
和 Q2 为截至状态,BOOT0 和 NRST 还原默认电平。
4. 上位机将程序下载到单片机,下载完毕之后,程序自动运行。
5. 至此,很多人还会认为 U18、Q1、Q2 是多余的,用 U6 的 RTS 和 DTR 直接控制也
可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬
间如果 USB 转串口连接了电脑,DTR 和 RTS 的电平是变化的,如果不处理好,单
片机会一直进入 ISP 模式,或者系统会复位多次,这种情况是不允许的。
6. 于是,就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系,单
片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有
一个规律就是:只要 RTS 为低电平的时候,DTR 的电平也是低,因此一般情况 Q2
不会导通,但由于这两个 IO 口的电平存在“竞争冒险”,会出现 RTS 的下降沿的
时候刚好遇到 DTR 的上升沿,这个时候 Q2 导通,导致系统复位,而 BOOT0 此时
有可能也为高电平,就会进入 ISP 模式。这个是不受我们控制的,我们不想系统出
现这样的情况。因此加入了模拟开关来切断这种干扰。
7. 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面
我们分析一下延时开关电路,上电瞬间,电容 C65 通过电阻 R18 来充电,由于电
阻 100k 很大,电容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V
时,大概耗时 1S,在这个 1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR
的干扰电平不会影响到系统复位。系统正常运行。
零死角玩转 STM32F103—霸道
论坛:www.firebbs.cn 20 / 898 淘宝:https://fire-stm32.taobao.com
第5章 初识 STM32
本章参考资料:1、《STM8 和 STM32 产品选型手册》
5.1 什么是 STM32
STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示
32 位,合起来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器
当中,STM32 可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出
其右。
5.1.1 STM32 诞生的背景
51 是嵌入式学习中一款入门级的精典 MCU,因其结构简单,易于教学,且可以通过
串口编程而不需要额外的仿真器,所以在教学时被大量采用,至今很多大学在嵌入式教学
中用的还是 51。51 诞生于 70 年代,属于传统的 8 位单片机,如今,久经岁月的洗礼,既
有其辉煌又有其不足。现在的市场产品竞争越来越激烈,对成本极其敏感,相应地对 MCU
的 性能要求也更苛刻:更多功能,更低功耗,易用界面和多任务。面对这些要求,51 现有
的 资源就显得得抓襟见肘。所以无论是高校教学还是市场需求,都急需一款新的 MCU 来
为这个领域注入新的活力。
基于这样的市场需求, ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 Cortex-M3
微控制器内核。紧随其后,ST(意法半导体)公司就推出了基于 Cortex-M3 内核的 MCU—
STM32。STM32 凭借其产品线的多样化、极高的性价比、简单易用的库开发方 式,迅速在
众多 Cortex-M3 MCU 中脱颖而出,成为最闪亮的一颗新星。STM32 一上市就 迅速占领了
中低端 MCU 市场,受到了市场和工程师的无比青睐,颇有星火燎原之势。
作为一名合格的嵌入式工程师,面对新出现的技术,我们不是充耳不闻,而是要尽快
吻合市场的需要,跟上技术的潮流。如今 STM32 的出现就是一种趋势,一种潮流,我们要
做的就是搭上这趟快车,让自己的技术更有竞争力。
5.2 STM32 能做什么
STM32 属于一个微控制器,自带了各种常用通信接口,比如 USART、I2C、SPI 等,
可接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品都
有 STM32 的身影,比如智能手环,微型四轴飞行器,平衡车、移动 POST 机,智能电饭锅,
3D 打印机等等。下面我们以最近最为火爆的两个产品来讲解下,一个是手环,一个是飞行
器。
剩余897页未读,继续阅读
iolh
- 粉丝: 170
- 资源: 48
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Lombok 快速入门与注解详解
- SpringSecurity实战:声明式安全控制框架解析
- XML基础教程:从数据传输到存储解析
- Matlab实现图像空间平移与镜像变换示例
- Python流程控制与运算符详解
- Python基础:类型转换与循环语句
- 辰科CD-6024-4控制器说明书:LED亮度调节与触发功能解析
- AE particular插件全面解析:英汉对照与关键参数
- Shell脚本实践:创建tar包、字符串累加与简易运算器
- TMS320F28335:浮点处理器与ADC详解
- 互联网基础与结构解析:从ARPANET到多层次ISP
- Redhat系统中构建与Windows共享的Samba服务器实战
- microPython编程指南:从入门到实践
- 数据结构实验:顺序构建并遍历链表
- NVIDIA TX2系统安装与恢复指南
- C语言实现贪吃蛇游戏基础代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功