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

文章目录

  • 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控制程序

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-内核与存储器

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

6-低功耗和ADC


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

一般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-最小系统电路

 最小系统五大部分:内核、存储器、时钟、复位、电源;


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

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

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

18-keil的安装

19-工程简介与调试流程

工程文件结构及用途


主程序一般框架

调试流程

20-固件库的安装

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

 “功能配置”寄存器是跨接软件到硬件的桥梁和核心模块;


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控制程序

stm32 /*入门1~100步要点全记录相关推荐

  1. 性感海滩MM绘制要点全记录

    [转自]http://68ps.5d6d.com/thread-5023-1-4.html 还是一些过程图,不大称得上教程,大家看看是否有帮助. 下载 (60.49 KB) 2008-9-27 14: ...

  2. 【STM32入门100步--学习笔记】USART串口接收程序(含教学视频)

    STM32串口接收的程序和8051单片机一样,有2种接收方式:中断处理和查询方式. 试过两种方式之后发现,中断处理方式更方便,可以扩展多个数据的接收.推荐中断方式. 我已经将本资料内容整理后录制了视频 ...

  3. TF学习——TF之TFOD:基于TFOD AP训练ssd_mobilenet预模型+faster_rcnn_inception_resnet_v2_模型训练过程(TensorBoard监控)全记录

    TF学习--TF之TFOD:基于TFOD AP训练ssd_mobilenet预模型+faster_rcnn_inception_resnet_v2_模型训练过程(TensorBoard监控)全记录 目 ...

  4. STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)

    目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...

  5. Android RIL 调试分析全记录 No APN found for carrier

    Android RIL 调试分析全记录 以前没有调试过RIL的东西, 从零开始, 花了两周时间,终于拨号成功,这里发表出来与大家共享经验,少走弯路. 上一篇文章是一个成功拨号的Android RIL ...

  6. vue在微信里面的兼容问题_详解Vue微信公众号开发踩坑全记录

    本文介绍了Vue微信公众号开发踩坑全记录,分享给大家,也给自己留个笔记. 需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分 ...

  7. python起源的故事_Python入门:在红遍全宇宙之前的小故事

    原标题:Python入门:在红遍全宇宙之前的小故事 人工智能风靡全宇宙,Python是当今最火的语言,那么小白们了解它台前幕后的小故事吗? 一.python的起源 说到Python,它的诞生是极具戏曲 ...

  8. C语言程序设计入门学习六步曲,六步带你入门C语言

    C语言是面向过程的,而C++是面向对象的 C和C++的区别:         C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理 ...

  9. DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练、测试(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录

    DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录 目录 测试输出结果 模型监控 训练过程全 ...

  10. DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练测试过程全记录

    DL之RNN:基于TF利用RNN算法实现生成编程语言代码(C语言).训练&测试过程全记录 目录 输出结果 监控模型 训练&测试过程全记录 训练的数据集展示 输出结果 1.test01 ...

最新文章

  1. 一行代码实现数据类型判断
  2. linux c socket programming
  3. is NULL , is NOT NULL 有时索引失效 || in 走索引, not in 索引失效 ||单列索引和复合索引 || 查看索引使用情况
  4. 续: [转]Oracle 表空间与数据文件
  5. Linux学习资料-万用字符与特殊符号
  6. 转:Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置!
  7. Java代码的执行顺序
  8. 每天进步一点点《ML - DBSCAN》
  9. BGP-13 配置BGP多路径发布
  10. 在线表单收集系统Tduck(docker篇)
  11. 通信原理(五) 信道编码
  12. dw添加下拉菜单_dreamweaver cs6中网页制作一个带有列表下拉菜单的详细操作方法...
  13. 介绍一个可以轻松下载病毒样本的数据库
  14. php 伪静态是什么意思,php伪静态的写法是什么
  15. java把一个对象赋值给另一个对象
  16. BUG记录——解析程序包出现错误
  17. 递归查询三种实现方式
  18. Matlab矩阵幂运算
  19. Matlab 矩阵运算(1)
  20. fragments(二)

热门文章

  1. 为啥好多公司面试程序员用纸写代码?不会是因为缺少笔记本电脑吧
  2. 微信开门,给你简单极致的开门体验!
  3. 软件销售公司交什么税
  4. 如何在SendWS做到WhatsApp客服系统,WhatsApp云控客服系统有作用?为什么选择WhatsApp做海外营销推广?
  5. 鼠标右键没有新建选项怎么办
  6. 坚果云服务器地址,坚果云第三方应用授权WebDAV开启方法
  7. 将多张图片合并为一张图片
  8. 通过FFMPEG、aria2c实现高速下载(支持去抖音水印, 视频播放, 视频编辑)
  9. 获取iPhone手机 UDID的方式--一网打尽(无论有无MAC电脑)
  10. java枚举构造器_java枚举类的构造函数实例详解