前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >stm32入门教程_单片机STM32

stm32入门教程_单片机STM32

作者头像
全栈程序员站长
发布2022-10-29 11:24:27
1.5K0
发布2022-10-29 11:24:27
举报

大家好,又见面了,我是你们的朋友全栈君。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

1-什么是ARM

首先你得知道学习stm32,实际就是在学ARM内核,stm32内核就是ARM的; ARM使用RISC精简指令集模式开发; ARM公司全称Acorn Risc Machine; ARM处理器本身是32位设计,但也具备16位指令集,与等价32位处理器相比代码量节省35%,还能具备32位处理器的所有优势; ARM公司是英国的; ARM公司是全球知识产权提供商,他不做生产制造; 全世界超过95%的智能手机和平板电脑都采用ARM架构; 同时日本软银收购了ARM公司,成为物联网的领军者; ARM11系列就是应用到手机上的芯片,包括ARMv6、ARM6T2、ARMv6KZ、ARMv6K; ARM12系列时候,名字就不叫ARM12了,叫成Cortex; 杨桃首页:

www.doyoung.net/YT

2-什么是stm32

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

stm32官网www.st.com

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3-stm32命名规范

在这里插入图片描述
在这里插入图片描述

4-内核与存储器

stm32入门教程_单片机STM32
stm32入门教程_单片机STM32

5-时钟、复位、电源管理

stm32入门教程_单片机STM32
stm32入门教程_单片机STM32

6-低功耗和ADC

在这里插入图片描述
在这里插入图片描述

也就是说单片机的接口中有16个接口是能设置成读ADC数模转换的;

stm32入门教程_单片机STM32
stm32入门教程_单片机STM32
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一般ADC模数转换都是要用到CPU,CPU给ADC发送一个指令,然后信号进CPU处理,后存到ARAM中; 这里我们加入了DMA模块,他的作用就是解放CPU这一作用功能的,让CPU做做其他事情,接上DMA后,数据会从ADC直接到DMA存到SRAM中,从而实现缓解CPU工作功能的作用大大提高效率;

7-DMA和IO口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

传统的就是图上的黑线

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入模拟输入时用专用的adc输入; 浮空输入是没有高低电平之分,是高阻输入; 上拉、下拉电阻一般都是10K电阻; 推挽输出就是一个高强度大电流的一个输出状态; 开漏输出就是不接高也不接低,直接输出;

在这里插入图片描述
在这里插入图片描述

红线标的都是GPIO接口,一共有37个;

在这里插入图片描述
在这里插入图片描述

这个图是标准了端口的所有复用; 有些端口有重映射的功能,重映射之后就会变成其他的端口的功能; 带下划线的都是可以兼容5v电压的;

8-调试模式和定时器

调试模式

在这里插入图片描述
在这里插入图片描述

串行单线好处是只要两跳线就能完成接口连接调试; JTAG是20引脚的端口,就不方便了; 接口的切换可以用TMS引脚上接法切换;

在这里插入图片描述
在这里插入图片描述

定时器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

stm32包含这4种定时器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TIM1是高级定时器

9-看门狗和滴答定时器

看门狗他表示一个独立的定时器,对单片机的CPU进行监控,一旦CPU的程序出现错误或是电压过低,反正就是出现意外情况,看门狗就会使单片极复位; 看门狗也是个定时器,正常工作样子是,CPU喂狗,触动他下,然后看门狗也是个定时器计数器,比如就开始从0开始计数到100,到计数到100,CPU再喂狗,如此,正常工作; 但是说那天CPU工作出现问题,有意外了,他没有喂狗,这时看门狗就会旺旺叫,叫就代表是复位CPU;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常说的“多任务”是怎么实现的呢? 就是CPU嘛在处理任务1,到一定阶段就放弃,转而处理任务2到一定阶段放弃,去处理任务3,到一定阶段,跳去处理任务4,到一定阶段,再回到任务1的断开处,接着轮着处理; 这样就像水慢慢漫过去那样,由于时间非常快,就近似多任务同时进行了啊; 看哪个值来确定到没到阶段呢?就是看这的这个滴答定时器;

在这里插入图片描述
在这里插入图片描述

普通定时器和高级定时器都是产生“中断”信号给CPU的; 窗口看门狗是产生“中断/复位”信号给CPU的; 独立看门狗是产生“复位”信号给CPU的; 高级定时器可以做电机控制应用; 窗口看门狗可以做普通定时器用,也可以做独立定时器功能用; 独立看门狗那就是专门的独立看门狗了,他有内部40KHzRC振荡器;

10-I2C和USART接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

所谓总线就是,一个主设备下面挂接多个从设备,通过一条通信线通信,这就是总线; 主模式是指发送指令的一方,从模式是接收指令、返回指令的一方; 从设备是被动设备,主设备是主动设备;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11-SPI、CAN和USB接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SPI用于板级间设备通信:比如板子上加个Flash、显示屏这些

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12-CRC校验和芯片ID

在这里插入图片描述
在这里插入图片描述

芯片唯一代码就好像人的身份证一样,芯片是96位的;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13-内部功能回顾总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14-接口定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15-开发板简介

16-ISP程序下载

17-最小系统电路

代码语言:javascript
复制
	最小系统五大部分:内核、存储器、时钟、复位、电源;
在这里插入图片描述
在这里插入图片描述

大家用USB连接电脑端就可以直接通信,但是电脑端最终识别的还是USB串口; 单片机什么时候知道要运行USB过来的程序,还是运行自己的程序呢? stm32在这里有一个设置,就是用BOOT0和PB2这里实现,他俩的组合配置00、11、01、10,就决定了运行哪来的程序的问题了;

在这里插入图片描述
在这里插入图片描述

这里配置的0/1,0代表接到GND,1代表接到Vcc

并行(并口)
并行(并口)

串口数据线,是一根输入,一根输出,连接是对调关系的;

18-keil的安装

19-工程简介与调试流程

工程文件结构及用途

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主程序一般框架

在这里插入图片描述
在这里插入图片描述

调试流程

20-固件库的安装

固件库是什么-神来之笔“功能配置寄存器”

代码语言:javascript
复制
	“功能配置”寄存器是跨接软件到硬件的桥梁和核心模块;
在这里插入图片描述
在这里插入图片描述

FLASH是用户自己写的程序→被ARM CPU指令调用→执行操纵“功能配置寄存器”→RCC、ADC、I/O等的扩展会读取“功能配置寄存器”的位高低状态,从而实现软件到硬件的实现

在这里插入图片描述
在这里插入图片描述

我们要安装的“固件库”就是这个“底层驱动程序”

stm32的三种编程方案

在这里插入图片描述
在这里插入图片描述

STM32Cube(HAL)是现阶段主推的图形化编程方案;

新建工程模板流程1

在这里插入图片描述
在这里插入图片描述

在工程文件中所有.c的文件都是用c语言编写的,是可执行的文件,所有.s的文件都是用汇编写的,比如启动文件,因为汇编语言效率高

默认工程树文件指示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一个工程文件例有.h文件,他主要就是对变量和函数的声明的,用途是 main函数可以方便的通过这个.h文件做桥梁调用main函数中用到变量和一些子函数 .h文件有103的头文件,这个芯片的头文件里面就是说芯片的配置寄存器物理地址

21-编程语言介绍

在这里插入图片描述
在这里插入图片描述

单片机编程用那种语言

在这里插入图片描述
在这里插入图片描述

“程序”的含义

在这里插入图片描述
在这里插入图片描述

单片机c语言组成框架图

在这里插入图片描述
在这里插入图片描述

22-固件库的调用

在这里插入图片描述
在这里插入图片描述

这个是说官方给103芯片提供了哪些函数,每一个函数都起到什么作用

23-添加工程文件

新建工程模板流程2

24-核心板电路分析

25-点亮一个led灯珠

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写入1高电平,写入0低电平;

26、更多点亮led灯珠的方法

有一个用用官方给的sys.h库,使用的方法

27、led灯珠闪烁程序

28、led呼吸灯程序

29、按键控制led

30、FLASH读写

在这里插入图片描述
在这里插入图片描述

31、PWM驱动蜂鸣器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PB5高电平,不响,低电平触发,但是如果是无源的蜂鸣器就不响了; 使用无源蜂鸣器,PB5不应长时间处于低电平状态,应处于高电平状态,就是关闭蜂鸣器线圈,要不会长时间通电烧坏; 让PB5输出脉冲信号,就能让无源蜂鸣器发出声音;

在这里插入图片描述
在这里插入图片描述

高低电平占用的时间也就决定了音调

32、MIDI音乐播放程序

在这里插入图片描述
在这里插入图片描述

MIDI是纯粹数字信号产生的声音 原理还是控制PWM占空比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

33、USART驱动程序

TX发送 RX接收

34、USART发送程序

35、USART接收程序

35、USART控制程序

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196566.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月6日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1-什么是ARM
  • 2-什么是stm32
  • 3-stm32命名规范
  • 4-内核与存储器
  • 5-时钟、复位、电源管理
  • 6-低功耗和ADC
  • 7-DMA和IO口
  • 8-调试模式和定时器
    • 调试模式
      • 定时器
      • 9-看门狗和滴答定时器
      • 10-I2C和USART接口
      • 11-SPI、CAN和USB接口
      • 12-CRC校验和芯片ID
      • 13-内部功能回顾总结
      • 14-接口定义
      • 15-开发板简介
      • 16-ISP程序下载
      • 17-最小系统电路
      • 18-keil的安装
      • 19-工程简介与调试流程
        • 工程文件结构及用途
          • 主程序一般框架
            • 调试流程
            • 20-固件库的安装
              • 固件库是什么-神来之笔“功能配置寄存器”
                • stm32的三种编程方案
                  • 新建工程模板流程1
                    • 默认工程树文件指示
                    • 21-编程语言介绍
                      • 单片机编程用那种语言
                        • “程序”的含义
                          • 单片机c语言组成框架图
                          • 22-固件库的调用
                          • 23-添加工程文件
                            • 新建工程模板流程2
                            • 24-核心板电路分析
                            • 25-点亮一个led灯珠
                            • 26、更多点亮led灯珠的方法
                            • 27、led灯珠闪烁程序
                            • 28、led呼吸灯程序
                            • 29、按键控制led
                            • 30、FLASH读写
                            • 31、PWM驱动蜂鸣器
                            • 32、MIDI音乐播放程序
                            • 33、USART驱动程序
                            • 34、USART发送程序
                            • 35、USART接收程序
                            • 35、USART控制程序
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档