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

青岛做网站建设的公司哪家好短链接生成网址

青岛做网站建设的公司哪家好,短链接生成网址,徐州发布最新消息,wordpress增加分类与标签目录 初识STM32单片机 什么是单片机? STM系列单片机命名规则 STM32F103C8T6单片机简介 标准库与HAL库区别 通用输入输出端口GPIO 什么是GPIO? 定义 命名规则 内部框架图 推挽输出与开漏输出 如何点亮一颗LED灯 编程实现点灯 按键点亮LED灯…

目录

初识STM32单片机

什么是单片机?

STM系列单片机命名规则

STM32F103C8T6单片机简介

标准库与HAL库区别 

通用输入输出端口GPIO

什么是GPIO?

定义

命名规则

内部框架图

推挽输出与开漏输出

如何点亮一颗LED灯

编程实现点灯 

按键点亮LED灯(轮询法) 


初识STM32单片机

什么是单片机?

单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处
理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功
能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成
到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

STM系列单片机命名规则

ST -- 意法半导体
M -- Microelectronics 微电子
32 -- 总线宽度

STM32F103C8T6单片机简介

标准库与HAL库区别 

1. 寄存器
  • 寄存器众多,需要经常翻阅芯片手册,费时费力;
  • 更大灵活性,可以随心所欲达到自己的目的;
  • 深入理解单片机的运行原理,知其然更知其所以然。
2. 标准库
  • 将寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用
  • 每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的;
  • 配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能;
  • 大大降低单片机开发难度,但是在不同芯片间不方便移植。
3. HAL
  • ST公司目前主力推的开发方式,新的芯片已经不再提供标准库;
  • 为了实现在不同芯片之间移植代码;
  • 为了兼容所有芯片,导致代码量庞大,执行效率低下。

通用输入输出端口GPIO

什么是GPIO

定义

GPIO通用输入输出端口的简称,简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与
外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
简单来说我们可以控制GPIO引脚的电平变化,达到我们的各种目的。

命名规则

组编号+引脚编号
组编号:GPIOA, GPIOB, GPIOC, GPIOD .. GPIOG
引脚编号:01234...15
组合起来:
PA0, PA1, PA2 .. PA15
PB0, PB1, PB2 .. PB15
PC0, PC1, PC2 .. PC15
...
有一些特殊功能的引脚是不能用作IO的。

内部框架图

下图来源于官方参考手册,了解即可。

推挽输出与开漏输出

内部结构图

 

 

推挽输出: 可以真正能真正的输出高电平和低电平
开漏输出: 开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完
成对外驱动

如何点亮一颗LED

标号一样的导线在物理上是连接在一起的。

 

PB8PB9拉低,就可以实现将对应的LED灯点亮。

编程实现点灯 

常用的GPIO HAL库函数:
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState
PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

结构体 GPIO_InitTypeDef 定义:

typedef struct
{
uint32_t Pin;
uint32_t Mode;
uint32_t Pull;
uint32_t Speed;
} GPIO_InitTypeDef;

按键点亮LED灯(轮询法) 

输入(按键):
  • KEY1PA0
  • KEY2PA1
输出(LED灯):
  • LED1PB8
  • LED2PB9
#define KEY_ON 0
#define KEY_OFF 1
uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{if( HAL_GPIO_ReadPin(GPIOx,GPIO_Pin) == GPIO_PIN_RESET)
{
/* 按键按下 */return KEY_ON;
}
else
{
/* 按键松开 */while(HAL_GPIO_ReadPin(GPIOx, GPIO_Pin) == GPIO_PIN_RESET);return KEY_OFF;
}
}
while (1)
{/* USER CODE END WHILE */if(Key_Scan(GPIOA,GPIO_PIN_0) == KEY_ON)HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);if(Key_Scan(GPIOA,GPIO_PIN_1) == KEY_ON)HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);/* USER CODE BEGIN 3 */
}

http://www.mmbaike.com/news/40801.html

相关文章:

  • 网站建设 部署与发布题库seo指搜索引擎
  • 网站建设java前后台好处天津seo方案
  • 河南网站排名优化哪家好上海快速排名优化
  • wordpress数字超市百度热搜关键词排名优化
  • 中色冶金建设有限公司网站企业管理咨询
  • thinkphp5 网站开发windows优化大师官方免费
  • 评测网站做的那些条形图优化标题关键词技巧
  • 张家港哪家做企业网站app推广渠道商
  • 淘宝网站建设的公司百度seo报价方法
  • 两个域名指向一个网站百度一下首页官网下载
  • 网站后台 全局配置上海发布最新情况
  • c 开发商城网站开发seo推广外包企业
  • 建设银行app搜索引擎营销与seo优化
  • 乐陵疫情最新消息seo优化的内容有哪些
  • 企业网站建设论文公司seo推广营销网站
  • 湛江模板做网站域名网
  • 不上此网站枉做男人实体店引流推广方法
  • 棋牌网站开发搭建seo怎么做最佳
  • 网站制作与维护公司百色seo快速排名
  • 上海网站建设方案网站模板中心
  • 网站备案的影响百度竞价排名医院事件
  • 重庆网站建设设计公司信息建站平台如何隐藏技术支持
  • 网站开发有年龄限制吗公司网站seo外包
  • 想建立什么网站吗郑州seo服务
  • 微信怎么做链接网站杭州百度推广代理公司哪家好
  • 上海网站建设 知名做网站建设平台有哪些
  • 网站建设需要哪些材料网站建设服务商
  • 盘石 网站建设营销网站建设哪家快
  • 网站开发是什么部门佛山百度快速排名优化
  • huang色网站国外推广都是怎么推广