logo资料库

《零死角玩转STM32》初级/中级/高级/系统篇-480页PDF教程 合并成单个文档.pdf

第1页 / 共508页
第2页 / 共508页
第3页 / 共508页
第4页 / 共508页
第5页 / 共508页
第6页 / 共508页
第7页 / 共508页
第8页 / 共508页
资料共508页,剩余部分请下载后查看
初级篇1、STM32如何编译和下载程序
0、友情提示
1、如何编译和下载程序
1.1编译程序
1.2下载程序
1.2.1 JLINK下载
1.2.2 串口下载
1.2.3 串口下载与JLINK下载对比
初级篇2、JLINK驱动安装与MDK环境搭建
0、友情提示
2、JLINK驱动安装与MDK环境搭建
2.1 JLINK驱动安装
2.2 MDK环境搭建
2.3 和谐MDK
初级篇3、如何新建工程模板
0、友情提示
3、如何新建工程模板
3.1 获取ST库源码
3.2开始新建工程
3.3 硬件调试配置
初级篇4、初识STM32库
0、友情提示
4、初识STM32库
4.1 STM32神器之库开发
4.1.1什么是STM32库?
4.1.2为什么采用库来开发?
4.2 STM32结构及库层次关系
4.2.1 CMSIS标准
4.2.2 库目录、文件简介
4.2.2.1 core_cm3.c文件
4.2.2.2 system_stm32f10x.c文件
4.2.2.3 stm32f10x.h文件
4.2.2.4 启动文件
4.2.2.5 STM32F10x_StdPeriph_Driver文件夹
4.2.2.6 stm32f10x_it.c、 stm32f10x_conf.h文件
4.2.3 库各文件间的关系
4.2.4 使用库帮助文档
4.2.4.1常用官方资料
4.4.2.2 初识库函数
初级篇5、流水灯的前后今生
0、友情提示
5、流水灯的前后今生
5.1 STM32的GPIO
5.2 STM32的地址映射
温故而知新——stm32f10x.h文件
外设基地址
总线基地址
寄存器组基地址
5.3 STM32库对寄存器的封装
5.4 STM32的时钟系统
5.4.1时钟树&时钟源
5.4.2高速外部时钟(HSE)
5.4.3 HCLK、FCLK、PCLK1、PCLK2
5.5 LED具体代码分析
5.5.1实验描述及工程文件清单
5.5.2配置工程环境
5.5.3编写用户文件
5.5.4初始化结构体——GPIO_InitTypeDef类型
5.5.5 初始化库函数——GPIO_Init()
5.5.6开启外设时钟
5.5.6.1启动文件及SystemInit()函数分析
5.5.6.2开启外设时钟
5.5.7控制I/O输出高、低电平
5.5.8 led.h文件
5.5.9 main文件
5.5.10 实验现象
5.6 GPIO_Init()函数的实现
5.6.1规范的位操作方法
5.6.2 GPIO_Init()实现代码分析
5.6.3 再论开发方式
中级篇1、调试必备-串口(UART)
0、友情提示
1、调试必备-串口(USART1)
1.1 异步串口通讯协议
1.2 直通线和交叉线
1.3 串口工作过程分析
1.3.1波特率控制
1.3.2收发控制
1.3.3数据存储转移部分
1.4 串口通讯实验分析
1.4.1实验描述及工程文件清单
1.4.2 配置工程环境
1.4.3 main文件
1.4.4 USART初始化配置
1.4.4.1 GPIO初始化
1.4.4.2 USART初始化
1.4.5 printf()函数重定向
1.4.6 USART1_printf()函数
1.4.7 实验现象
中级篇2、ADC(DMA模式)
0、友情提示
2、ADC(DMA模式)
2.1 ADC简介
2.2 STM32的ADC主要技术指标
2.3 ADC工作过程分析
2.4 ADC采集实例分析
2.4.1实验描述及工程文件清单
2.4.2 配置工程环境
2.4.3 main文件
2.4.4 ADC初始化
2.4.4.1 配置GPIO端口
2.4.4.2 配置DMA
2.4.4.3 配置ADC模式
2.4.4.4 ADC转换时间配置
2.4.4.4.5 ADC自校准
2.4.4.4.6 volatile变量
2.4.5 计算电压值
2.4.6实验现象
中级篇3、Temperate(芯片温度)
0、友情提示
3、Temperature(芯片温度)
3.1 实验描述及工程文件清单
3.2 ADC及内部温度传感器简介
3.3 代码分析
3.4 实验想象
中级篇4、RTC(万年历)
0、友情提示
4、RTC(万年历)
4.1 实验描述及工程文件清单
4.2 RTC(实时时钟)简介
4.3 代码分析
中级篇5、IIC(EEPROM)
0、友情提示
5、IIC(EEPROM)
5.1 实验描述及工程文件清单
5.2 I2C简介
5.3代码分析
5.4实验现象
中级篇6、SPI(2M-Flash)
0、友情提示
6、SPI(2M-Flash)
6.1 实验描述及工程文件清单
6.2 SPI简介
6.3代码分析
6.4实验现象
中级篇7、PWM(软件仿真)
0、友情提示
7、PWM(软件仿真)
7.1 实验描述及工程文件清单
7.2 STM32通用定时器简介
7.3 代码分析
7.4 软件仿真
中级篇8、CAN(Looback)
0、友情提示
8、CAN(Looback)
8.1 实验描述及工程文件清单
8.2 CAN简介
8.3 代码分析
8.4 实验现象
中级篇9、2.4G无线(NRF24L01)
0、友情提示
9、2.4G无线(NRF24L01+)
9.1 实验描述及工程文件清单
9.2 NRF24L01模块简介
9.3 代码分析
9.4 实验想象
中级篇10、重力感应-三轴加速(MMA7455)
0、友情提示
10、重力感应/三轴加速(MMA7455)
10.1 实验描述及工程文件清单
10.2 MMA7455简介
10.3代码分析
10.4实验现象
高级篇1、SDIO(4bit + DMA、支持SDHC、带协议分析)
友情提示
1、SDIO(4bit + DMA、支持SDHC)
1.1 实验描述及工程文件清单
1.2 SDIO简介
1.3 SD协议
1.4 代码分析
1.5实验现象
高级篇2、文件系统(Fatfs-0.09、图解移植过程)
友情提示
2、FatFs (Rev-R0.09)
2.1 实验描述及工程文件清单
2.2 实验简介
2.3 FatFS文件系统简介
2.4 移椊前的工作
2.4.1 分析FATFS的目录结构
2.5 开始移椊
2.6实验代码分析
2.7 实验现象
高级篇3、MP3(支持中英文、长短文件名)
友情提示
3、MP3(支持中英文、长短文件吊)
3.1 实验描述及工程文件清单
3.2 VS1003 & TDA1308简介
3.2.1 VS1003
3.2.2 TDA1308
3.3 实验讲解
3.4 实验现象
高级篇4、FSMC详解(3.2寸液晶触摸画板)
友情提示
4、液晶触摸画板
4.1实验简介
4.2 LCD控制器简介
4.2.1 ILI9341控制器结构
4.2.2 像素点的数据格式
4.2.3 ILI9341的通讯时序
4.3 用STM32驱动LCD
FSMC简介
用FSMC模拟8080时序
4.3.1 触摸屏感应原理
4.3.2 TSC2046触摸屏控制器
4.4 实验讲解
4.4.1 实验描述及工程文件清单
4.4.2配置工程环境
4.4.3 main文件
4.4.5 初始化FSMC模式
4.4.5.1初始化液晶屏流程
4.4.5.2初始化FSMC模式
4.4.6 FSMC模拟8080读写参数、命令
读写参数、命令
计算地址
给整个屏幕上色
4.4.6.1液晶屏画点函数
4.4.6.2触摸屏校正
4.4.6.3检测触点、画点
4.5实验现象
高级篇5、3.2寸液晶显示(中英文+图片)
友情提示
5、液晶显示(中、英、Pic)
5.1 实验简介
5.2 什么是字模
5.3 制作字模
5.4. BMP图片格式
5.4.1 BMP图片分析
0~1字节
3~14字节
14~53字节
5.5 显示中英文及 BMP图片实验
5.5.1实验描述及工程文件清单
5.5.2配置工程环境
5.5.3 main文件
5.5.4显示汉字
5.5.4.1查找字模
5.6 实现SD卡BMP图像的读取与保存
5.6.1显示BMP图
5.6.2 LCD截图功能
5.7实验现象
高级篇6、UsbDevice(模拟U盘)
友情提示
6、UsbDevice(模拟U盘)
6.1 实验描述及工程文件清单
6.2 USB简介
6.3友情提示
6.4实验讲解
6.5实验现象
高级篇7、以太网(ENC28J60)
友情提示
7、以太网(ENC28J60)
7.1 实验描述及工程文件清单
7.2 ENC28J60简介
7.3 实验讲解
7.4实验现象
高级篇8、以太网(ENC28J60 + Lwip)
友情提示
8、以太网(ENC28J60+LWIP)
8.1 友情提醒
8.2实验步骤
8.2.1 ping实验
8.2.2 telnet实验
8.2.3 网页浏览实验
高级篇9、WIFI
友情提示
9、WIFI
9.1资料与工具下载
9.2实验描述
9.2.1实验现象
9.2.2硬件连接图
9.2.3 EMSP_API函数
9.2.4 API函数一览
9.2.5 MAIN函数讲解
9.3其他说明:
9.4技术支持
高级篇10、摄像头
友情提示
10、摄像头
系统篇1、uCOS-II 移植与深入实战指南
友情提示
从0开始移椊UCOS-II 到野火STM32开发板
前言
1、官方源代码介绍
2、重要文件代码详解
2.1 os_cpu.h
全局变量
数据类型
临界段
栈生长方向
任务切换宏
函数原型
开中断和关中断
任务管理函数
2.2 os_cpu_c.c
钩子函数
任务堆栈结构初始化函数
SysTick时钟初始化
2.3 os_cpu_a.asm
声明外部定义
声明全局变量
向量中断控制器NVIC
中断
启动最高优先级任务
任务切换
中断退出处理
PendSV 中断朊务
3、uC/OS-II移椊到STM32处理器的步骤
3.1 打开LED工程模版
3.2 搭建uC/OS-II工程文件结构
3.3 配置uC/OS-II
os_cfg.h
os_cfg.h配置表格
3.4 修改os_cpu.h
3.5 修改os_cpu_c.c
3.6 修改 os_cpu_a.asm
3.7 修改os_dbg.c
3.8 修改startup_stm32f10x_hd.s
3.9 编写includes.h
3.10 编写BSP
BSP.C文件代码
BSP.h头文件
3.11 编写stm32f10x_it.c
3.12 创建任务
编写app_cfg.h
编写app.c
编写app.h头文件
3.13 main函数
4、运行多任务
4.1 修改app.c
4.2 编写app.h
4.3 编写app_cfg.h
4.4 编写main.c
5、升级到最新版本V2.90
5.1 上得上说的那些话儿
5.2 从V2.86升级到V2.90说明
V2.87更新日志
V2.88 更新日志
V2.89 更新日志
V2.90更新日志
5.3 更新步骤
5.4 更新其他工程
更新 STM32+UCOS+LED多任务 的例子
6、移椊计算器
6.1 处理外部中断
6.2 移椊步骤
具体步骤
6.3 增加通信功能——队列
0、友情提示 《零死角玩转 STM32》系列教程由初级篇、中级篇、高级篇、系统篇、 四个部分组成,根据野火 STM32 开发板旧版教程升级而来,且经过重新深入编 写,重新排版,更适合初学者,步步为营,从入门到精通,从裸奔到系统,让 您零死角玩转 STM32。M3 的世界,与野火同行,乐意惬无边。 另外,野火团队历时一年精心打造的《STM32 库开发实战指南》将于今 年 10 月份由机械工业出版社出版,该书的排版更适于纸质书本阅读以及更有利 于查阅资料。内容上会给你带来更多的惊喜。是一本学习 STM32 必备的工具 书。敬请期待! -第 2 页-
1、如何编译和下载程序 在拿到开发板之后,很多朋友都想先尝尝鲜,想自己烧写个程序到开发板 上,看看效果。下面将演示如何将光盘里面自带的程序烧写到野火 STM32 开发 板上。前提是你的电脑上已经安装了 JLINK 驱动和 MDK 开发环境,如果这一部没 有完成,请参考《2、JLINK 驱动安装与 MDK 环境搭建》。野火 STM32 开发板光 盘上提供的代码都是已经编译好的,直接下载即可。 1.1 编译程序 首先打开一个 MDK 工程,在野火 STM32 开发板光盘目录下:2-程序+教程\ 第一部分-库开发初级篇\5-野火M3-流水灯\USER,点击 STM32- DEMO.uvproj,打开流水灯这个工程。在弹出的 MDK 界面中,我们可以看到左边 的工具栏中有三个按钮,现在我们从左往右来介绍下这三个按钮的功能。  第一个按钮:Translate 就是翻译当下修改过的文件,说明白点就是检查 下有没有语法错误,并不会去链接库文件,也不会生成可执行文件。  第二个按钮:Build 就是编译当下修改过的文件,它包含了语法检查,链 接动态库文件,生成可执行文件。 -第 3 页-
 第三个按钮:Rebuild 重新编译整个工程,跟 Build 这个按钮实现的功能 是一样的,但有所不同的是它编译的是整个工程的所有文件,耗时巨 大。 综上:当我们编辑好我们的程序之后,只需要用第二个 Build 按钮就可以, 即方便又省时。第一个跟第三个按钮用的比较少。 1.2 下载程序 野火 STM32 开发板有两种下载方式,JLINKV8 下载和串口下载。要注意的 是:1、JLINK 下载的时候,开发板中的拨动开关 BOOT0(在开发板边缘,靠近网 口)即可以拨到 VCC 也可拨到 GND,但在 JLINK 下载完程序后,必须将 BOOT0 拨到 GND,好让程序从内部的存储器开始运行程序,所以在 JLINK 下载时最保险的方法 就是将 BOOT0 拨到 GND 那端。2、在用串口下载程序的时候,必须将 BOOT0 开发拨 到 VCC,在程序下载完后,然后将 BOOT0 开关拨到 GND。 1.2.1 JLINK 下载  插上 DC-5V 电源给开发板供电,再插上 JLINK。  点击 MDK 工具栏中的 Load 按钮就可将编译好的程序下载到开发板中。  下载成功之后,程序就会自动运行。如果发现程序没有运行,则可按下开 发板中的复位按键。 -第 4 页-
这里要注意的是:程序在烧写到开发板后是否自动运行,是可以在 MDK 开发 环境:Target Options…->Debug->Setting->Falash DownLoad 中设置的: 如果没有设置为自动运行的话,我们需要在程序下载完毕之后进行手动复 位,手动复位可以是按键复位和上电复位。 还有一点要注意的是:在程序下载到开发板之后,开发板要供电,JLINK 一 端连开发板,另一端连 PC,这样程序才能运行。有些用户在下载程序之后,第 二次用的时候只是给开发板供电,JLNK 的一端只连了开发板而没有连 PC,这样 -第 5 页-
程序是不能工作的。要想只在供电的情况下要程序运行,只需把 JLNK 从开发板 中拔掉即可,即只连电源,不接 JLINK 即可。 1.2.2 串口下载  插上 DC-5V 电源给开发板供电,插上 JLINK,插上自带的串口线(注意是两头 都是母的交叉串口线)。  将 BOOT0 开关拨到 VCC。 在这里我们用的串口下载软件是 mcuisp,这个一个绿色的软件,可从网上 自由下载,野火 M3 光盘目录下:3-安装软件\3-串口下载软件找到。  点击 mcuisp.exe,打开 mcuisp,mcuisp 是很智能的,只要开发板上电且连接 好了串口,它就会自动搜索串口,野火 STM32 开发板用的是电脑主板 后面的串口,这个串口都会被默认为是串口 1。假如你是笔记本用户, 用的是 USB 转串口,那么端口号可能就不是 COM1,需要到我的电脑\管理\设 备管理器\端口中查找,然后再修改。  设置波特率为 115200,选择要下载的程序。在开发板自带的例程中,可执 行文件(hex 文件)都在工程目录下的 Output 这个文件下。 -第 6 页-
-第 7 页-
 然后点击 开始编程 按钮,如果程序下载成功后则会打印出下面红色框中的 信息。  程序下载成功之后,可是在开发板上看不到实验现象呀,怎么办?是不是 出什么问题了呀?这是因为我们是通过串口将我们的程序烧写到 flash 里面 去了,而我们想要从 flash 里面执行我们的程序的话,则需要将 BOOT0 开关拨 到 GND,然后按下我们的复位按键就可以看到实验想象了。 -第 8 页-
分享到:
收藏