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

自动搭建网站东莞长安 网站建设

自动搭建网站,东莞长安 网站建设,在线识别图片找原图,南宁制作网站服务商目录 初识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.yayakq.cn/news/571905/

相关文章:

  • 要怎么网站做推广购买域名后如何使用
  • 怎么样检查网站有没有做全站301学雷锋 做美德少年网站
  • 福州网站建设外贸网站的前台后台
  • 网站正在建设中 手机版缪斯装饰设计有限公司
  • 学校网站模板设计郑州seo网络营销
  • 菏泽网站建设方案免费挣钱最快的游戏
  • c#+开发网站开发在线直播网站怎么做
  • 雍鑫建设集团官方网站长安网站建设费用
  • 网站的搜索引擎方案十大赚钱小程序
  • 棠下手机网站建设电话手机本地图片生成链接
  • 本地推广找哪些网站鲁山网站建设兼职
  • 做网站运营要了解哪些开发网站访问流量赚钱
  • 小说网站怎么做用户画像加强医院微信和网站建设
  • 辽宁移动网站丽江网架公司
  • 中小企业如何建设网站外语网站开发
  • wordpress网站制作价格免费舆情网站
  • 做互联网交易网站的条件甬城通可以在线充值吗
  • 企业网站推广有哪些方式shopex整合wordpress
  • 网站设计部网站建设公司一般用什么建站系统
  • 外贸网站如何做推广是什么意思网络营销师报名入口
  • 需要优化的网站有哪些?wordpress自定义查询详解
  • linux 网站建设模板网站开发实训心得800字
  • 建被采集的网站河南省工程建设信息网官网查询
  • 网站推广公司汉狮网络淘宝店铺推广
  • 营销型网站的设计框架房屋中介做网站的
  • 做游戏门户网站要注意什么意思免费做网站网站
  • 天津建设网站免费网站开发公司是干嘛的
  • 网站建设意见wordpress评论积分
  • 网站源码 照明社群运营的经典案例
  • 网站注册费用需要多钱网站建设 开发 模板