当前位置: 首页 > news >正文

STM32

(以下操作环境为Keil5和proteus8.9)

八种输入输出模式及他们的工作模式

分析如下

总线:总线提供了数据在不同组件(如处理器、内存、输入输出设备等)之间传输的路径,使数据能够快速、准确地在系统内流动。

输出控制内内置一个“非”器,GPIO或其他外部设备输入0,经过输出控制,由VDD输出给外部,为1.

模拟信号:由输入电压与3.3的比值,算出传感器感官占比,再判断是否达到触发值。

(存储器基地址在此处查找)

(偏移地址在此处查找)

端口配置位:0~7-----端口配置低寄存器

8~15------端口配置高寄存器

单片机入门:点亮一个led邓并闪烁

左上角创建project和main.c文件:

代码解释:

前三行定义了宏(系统自带,也直接调用其函数)以及基地址和偏移地址,用以存储器与外设的匹配(操作地址=操作内存空间=操作存储器)

RCC是系统复位和时钟控制的缩写(reset and clock control),APB2 是外设时钟使能寄存器(RCC_APB2ENR),默认为不工作状态,通过设置这个寄存器,可以开启或关闭某个外设的时钟供应,从而有效地控制外设的工作状态。当使能某个外设的时钟时,该外设可以正常工作,进行数据传输、处理等操作;当禁止时钟时,外设处于低功耗状态,减少系统的功耗消耗。

将“1”左移2位,IO端口A时钟使能 (I/O port A clock enable)
由软件置’1’或清’0’
0:IO端口A时钟关闭;
1:IO端口A时钟开启

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器
(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存
器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。以上我们选择的是通用输入模式。

proteus仿真:

步骤:

打开proteus后点击左边方框内的P键,选择器件STM32F103c6和led灯(可选多种其他颜色)--->点击左边方框后图标选择“power”(接地线),依次连接起来

proteus内导入:右击选择编辑内容后选择编辑文件---Keil文件

点击左下角的绿色运行键后灯泡亮并闪烁

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Linux】冯诺依曼概念以及操作系统基础概念
  • Hadoop 下载
  • 集运系统需要与哪些硬件设备集成?
  • QString如何追加字符串
  • 视频安防监控LntonAIServer安防管理平台抖动检测和过亮过暗检测
  • 电工基础知识
  • Mental-LLM——通过在线文本数据利用大型语言模型进行心理健康预测
  • 【路径规划】 使用计算机视觉和机器人操纵器绘制肖像
  • 1-6 图像覆盖掩膜 opencv树莓派4B 入门系列笔记
  • 金融、互联网等领域手机三要素API接口的应用
  • 计算氨基酸残基之间的键角和二面角
  • 基于Python爬虫的淘宝服装数据分析项目
  • Python的math库——常用数学函数全解析
  • 3D 场景模拟 2D 碰撞玩法的方案
  • QString如何格式化字符串
  • 分享的文章《人生如棋》
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • JAVA SE 6 GC调优笔记
  • Java 网络编程(2):UDP 的使用
  • Javascript Math对象和Date对象常用方法详解
  • javascript面向对象之创建对象
  • JS专题之继承
  • Just for fun——迅速写完快速排序
  • node入门
  • 从零开始的无人驾驶 1
  • 诡异!React stopPropagation失灵
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 简析gRPC client 连接管理
  • 力扣(LeetCode)56
  • 前端面试之闭包
  • 如何进阶一名有竞争力的程序员?
  • 三分钟教你同步 Visual Studio Code 设置
  • 收藏好这篇,别再只说“数据劫持”了
  • 手机端车牌号码键盘的vue组件
  • 学习笔记:对象,原型和继承(1)
  • 正则表达式小结
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ###C语言程序设计-----C语言学习(6)#
  • #VERDI# 关于如何查看FSM状态机的方法
  • #每日一题合集#牛客JZ23-JZ33
  • #微信小程序:微信小程序常见的配置传旨
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET C# 操作Neo4j图数据库
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes