学习目标:

  • 掌握 STM32 基础知识

学习STM32单片机之------IO控制
数据缩写
ODR : Output data register;数据输出寄存器
RCC(reset and clock control);复位和时钟控制


学习内容:

  1. 在STM32 中,每个外设都有一个起始地址,叫做外设基地址,外设的寄存器就以这个基地址为标准按照顺序排列,跟结构体里面的成员差不多

  2. ODR 寄存器的地址偏移是:0CH,这个偏移地址是基于端口的起始地址而言的

  3. STM32 的IO 口还要配置方向,这个由端口配置寄存器来控制。端口配置寄存器分为高低两个,每4bit 控制一个IO 口,所以端口配置低寄存器:CRL 控制这IO 口的低8位,端口配置高寄存器:CRH控制这IO 口的高8bit。在4 位一组的控制位中,CNFy[1:0] 用来控制端口的输入输出,MODEy[1:0]用来控制输出模式的速率,即输出时,IO 电平翻转的速度,如下图所示。
    八个IO口,每四位控制一个IO口,stm32寄存器都是32位的。

  4. STM32 外设很多,为了降低功耗,每个外设都对应着一个时钟,在系统复位的时候这些时钟都是被关闭的,如果想要外设工作,必须把相应的时钟打开。

  5. STM32 的所有外设的时钟由一个专门的外设来管理,叫RCC(reset and clock control)

  6. STM32 的外设按照速率的不同,分别挂载到三条总线上:AHB、APB2、APB1,AHB为高速总线,APB2 次之,APB1 再次之。所以的IO 口都挂载到APB2 总线上,属于高速
    外设。时钟由APB2 外设时钟使能寄存器(RCC_APB2ENR)来控制,其中PB 端口的时钟由
    该寄存器的位3 写1 使能。
    RCC 外设中的:时钟控制寄存器(RCC_CR)和时钟配置寄存器(RCC_CFGR)


学习总结:

控制了电平,配置了方向,开启了时钟,即可控制一个LED灯。


STM32学习总结之IO控制相关推荐

  1. STM32学习-基于STM32F1具有控制菜单的温控小风扇

    一.前言 本文仅作个人学习记录,非教程,内容不完整,仅供参考. 二.概述 使用ADC读取环境温度,根据环境温度设置PWM占空比,从而控制FAN转速.控制菜单功能:1.设置特定转速,2.切换为手动模式任 ...

  2. STM32学习之旅④ USART串口和上位机通信

    STM32系列博客: STM32学习之旅① 开发环境搭建 STM32学习之旅② 固件库的使用及工程模板的建立 STM32学习之旅③ 从点灯到代码移植 STM32学习之旅④ USART串口和上位机通信 ...

  3. STM32学习:按键控制LED

    STM32学习:按键控制LED 文章目录 前言 一.所用知识点复习 1.stm32工作模式(*注意上下拉输入的区别*) 2.按键抖动与常见按键接法 按键抖动: 按键消抖: 常见按键接法: 3.GPIO ...

  4. STM32学习之TFTLCD

    前言 之前的STM32博客学习了从0新建工程,C语言知识复习,总线时钟等基础知识,现在根据手册开始正式的开发项目,本篇博客主要是理解文档中的TFTLCD部分的学习 学习资料来自:STM32F407最小 ...

  5. 《STM32学习笔记》4——核心功能电路与编程(下)

    接上文,文中的图片,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.蜂鸣器驱动 1.蜂鸣器介绍 2.蜂鸣器电路 3.蜂鸣器程序 二. MIDI 音乐 ...

  6. STM32学习心得十八:通用定时器基本原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容: 1) 三种定时器分类及区别: 2) 通用定时器特点: 3) 通用定时器工作过程: 4) 实验一:定时器中断实验补充知识及部代码解读: 6) 实验二:定时器PWM输 ...

  7. STM32学习之SPI协议(读写FLASH)

    关于STM32学习分享 第八章 SPI协议(读写FLASH) 文章目录 关于STM32学习分享 前言 二.代码 1.spi_flash.c 2.spi_flash.h 3.main.c 总结 前言 开 ...

  8. stm32学习(启动+LED+按键)

    stm32学习心得 提示:写博客纯属第一次练手,不足之处希望多提建议 文章目录 stm32学习心得 前言 一.keil的安装 二.跑demo之前,先了解一下stm32是啥先铺垫 三.运行一个demo看 ...

  9. STM32学习——入门小项目

    博客地址:STM32学习--入门小项目 – Infinite's Blog 这个小项目是来自参加电设时,老师发的STM32入门(进阶)任务,具体的要求如下: 软件设计要求 编写简单I/O程序,能用板上 ...

最新文章

  1. 【水】JSOI完美的对称
  2. python数据科学和机器学习常用库的官方文档
  3. 二进制-八进制-十进制-16进制之间的转换
  4. 额外篇 | ggplot (下)
  5. php ajax无刷新分页源码,ajax实现无刷新分页(php)
  6. ReportViewer教程(11)-给报表特定的内容设置颜色
  7. multipartfile 获取音频时长_QQ音乐移动端加入倍速播放,蓄力长音频发展 | 产品观察...
  8. lnmp一键安装包删除添加的域名
  9. vbe编程真人小代码
  10. 格拉布斯(Grubbs)准则法
  11. web前端顶岗实习总结报告_实习报告-web前端实习报告范文三篇 精品
  12. 什么是股市泡沫或楼市泡沫?泡沫何解?
  13. 高效的word转换成pdf转换器
  14. 【渝粤教育】国家开放大学2019年春季 24建筑工程管理与实务 参考试题
  15. 互联网+智慧公安大数据一体化解决方案
  16. Windows10下安装Wamp Server(wamp5_1.7.4)-图文教程
  17. gl-matrix中lookAt的作用
  18. 大连渤海・黄海潮汐时间表
  19. 超级计算机能力,再夺世界第一 中国天河2号超级计算机运算能力达30PF
  20. 名表依波路borel_borel手表是什么牌子

热门文章

  1. Virtualbox+Vagrant搭建linux虚拟机并搭建easySwoole框架
  2. 通过socket来下载一张图片
  3. 基础数学(二)两数之和 三数之和
  4. 聊聊“管理+IT”中管理的几个含义
  5. voip push推送
  6. Ubuntu部署 Blockscout 区块链浏览器流程
  7. codevs2800
  8. 万兆网和千兆网ubuntu环境下的配置
  9. 典型资产过去一年表现
  10. Python 从源码到执行