L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

这篇具有很好参考价值的文章主要介绍了L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、MDK-ARM环境介绍及安装

二、STM32Cube简介及安装

  STM32CubeMX安装

加载固件库

​编辑

 三、 STM32F0存储器映射

四、STM32启动文件分析

五、GPIO的基本概念及寄存器介绍1

1、GPIO接口简介

 2、GPIO功能复用

 3、GPIO寄存器介绍

 GPIO工作原理框图:

五、点亮LED寄存器版(STM32F051K8)

1、硬件原理图分析

2、 使能GPIO的时钟

3、编程步骤分析 

六、点亮LED库函数版(STM32F051K8) 

2、CubeMX的配置

 3、初始化关键代码分析

4、控制LED关键代码分析

七、初识人机交互--按键

1、硬件原理图分析

作业:拍摄stm32流水灯视频


一、MDK-ARM环境介绍及安装

 略

二、STM32Cube简介及安装

 直观的选择STM32微控制器
 微控制器图形化配置
自动处理引脚冲突
动态设置确定的时钟树
可以动态确定参数设置的外围和中间件模式和初始化
功耗预测
 C代码工程生成器覆盖了STM32微控制器初始化编译软件,如IAR,KEIL,GCC可以独立使用,作为Eclipse插件使用

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

  STM32CubeMX安装

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)  安装JAVA运行环境,JavaSetup8u151.exe 
  解压stm32cubemx.zip,安装SetupSTM32CubeMX-4.22.0.exe,最好不要有中文路径
  解压stm32cube_fw_f0_v180.zip到STM32CubeMX的安装路径中
 

加载固件库

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 三、 STM32F0存储器映射

 略

四、STM32启动文件分析

五、GPIO的基本概念及寄存器介绍1

1、GPIO接口简介

 通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 2、GPIO功能复用

 注:查看 《 STM32F0数据手册》

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 3、GPIO寄存器介绍

  STM32F051-GPIO常用寄存器  

4个32位配置寄存器         GPIOx_MODER,  GPIOx_OTYPER,  GPIOx_OSPEEDR     GPIOx_PUPDR  

2个32位数据寄存器       GPIOx_IDR 、GPIOx_ODR

1 个32 位置位 / 复位寄存器       GPIOx_BSRR

2 个 32 位复用功能配置寄存器      GPIOx_AFRH 、GPIOx_AFRL

注:每一组GPIO端口都有一套上述的寄存器去配置它自己的功能

GPIO寄存器MODER:

GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..D,F)     偏移地址: 0x00     复位值:  

●  0x2800 0000 端口 A   ●  0x0000 0000 其他口

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

GPIO寄存器OTYPER:

GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x = A..D,F)   偏移地址: 0x04   复位值: 0x0000 0000

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO工作原理框图:

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO寄存器OSPEEDR:

  GPIO 口输出速度寄存器 (GPIOx_OSPEEDR) (x = A..D,F)      偏移地址: 0x08      复位值: 0x0000 0000

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO寄存器PUPDR:

  GPIO 口上拉 / 下拉寄存器 (GPIOx_PUPDR) (x = A..D,F)      偏移地址: 0x0C      复位值:     ● 0x2400 0000 端口 A     ● 0x0000 0000 其它端口

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO寄存器IDR:

  GPIO 端口输入数据寄存器 (GPIOx_IDR) (x = A..D,F)      偏移地址: 0x10      复位值: 0x0000 XXXX (X 表明不定 )

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO寄存器ODR: 

GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A..D,F)      偏移地址: 0x14      复位值: 0x0000 0000

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO寄存器BSRR:

  GPIO 端口置位 / 复位寄存器 (GPIOx_BSRR) (x = A..D,F)      偏移地址: 0x18      复位值: 0x0000 0000

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 GPIO寄存器AFRL:

  GPIO 复用功能低位寄存器 (GPIOx_AFRL) (x = A..B)       偏移地址: 0x20       复位值: 0x0000 0000

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

GPIO寄存器AFRH:

  GPIO 复用功能低位寄存器 (GPIOx_AFRH) (x = A..B)       偏移地址: 0x24       复位值: 0x0000 0000

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

五、点亮LED寄存器版(STM32F051K8)

1、硬件原理图分析

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

2、 使能GPIO的时钟

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

  AHB 外部时钟使能寄存器 (RCC_AHBENR)    

偏移地址 : 0x14     复位值 : 0x0000 0014     访问:无等待周期,字,半字和字节访问

3、编程步骤分析 

  开启GPIOB的时钟        RCC->AHBENR  |=  1<<18;              

配置PB0 PB1 PB2接口          

GPIOB->MODER |= (1<<0)|(1<<2)|(1<<4);    //设置PB0, PB1, PB2为通用输出模式       GPIOB->OTYPER = 0x0;                                      //设置PB0, PB1, PB2为通用推挽输出       GPIOB->OSPEEDR = 0x0;                                   //设置输出速度为低速  

控制LED;                          

GPIOB->BSRR = (1<<16)|(1<<17)|(1<<18);     //复位PB0, PB1, PB2 既点亮LED        GPIOB->BSRR = (1<<0)|(1<<1)|(1<<2);            //置位PB0, PB1, PB2 既熄灭LED

六、点亮LED库函数版(STM32F051K8) 

 1、硬件原理图

2、CubeMX的配置

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 3、初始化关键代码分析

 GPIOB初始化

void MX_GPIO_Init(void)
{
      GPIO_InitTypeDef GPIO_InitStruct;

    __HAL_RCC_GPIOB_CLK_ENABLE();                                                     //使能GPIOB的时钟
    
     GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2;       //初始化对象为0, 1, 2号管脚
      GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;                        //模式为推挽输出
      GPIO_InitStruct.Pull = GPIO_NOPULL;                                                //没有上拉
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;                         //低速
      HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);                                       //配置好后开始初始化
}

4、控制LED关键代码分析

复位PB0, PB1, PB2 既点亮LED      

HAL_GPIO_WritePin(GPIOB,  GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);  

置位PB0, PB1, PB2 既熄灭LED        

HAL_GPIO_WritePin(GPIOB,  GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);

七、初识人机交互--按键

1、硬件原理图分析

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)

 L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)文章来源地址https://www.toymoban.com/news/detail-430331.html

作业:拍摄stm32流水灯视频

到了这里,关于L16物联网ARM开发--开发环境搭建及平台及GPIO口操作平台介绍(day2、3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT·移植Qt到ARM平台及搭建Qt交叉编译环境

    目录 一、编译tslib库 二、移植 tslib 到文件系统  三、编译Qt源码(用于移植到ARM) 四、移植Qt到文件系统  五、搭建 Qt Creator 交叉编译环境  六、获得Qt可执行文件的另一种方法 要想在ARM平台上运行Qt程序,得满足以下两个点: 1、ARM平台上搭建Qt运行环境 2、获得通过交叉编

    2024年02月02日
    浏览(35)
  • 【ARM 裸机】开发环境搭建

    使用过程中,要频繁进行 Ubuntu 和 Windows 的文件互传,需要使用 FTP 服务; 1.1、开启 Ubuntu 下的 FTP 服务 修改结果,保证这两行命令前面没有 # ,保存退出; 重启 FTP 服务; 1.2、Windows 下安装 FTP 客户端 FileZilla 安装好 FileZilla 客户端之后,点击文件选项进入站点管理器,编号4输

    2024年04月10日
    浏览(34)
  • VSCode搭建ARM开发环境

    为了构建Cortex M系列单片机免费开源的开发环境,网络上了解来看VSCODE+GCC+JLINK是一套比较高效的组合方式,下面记录环境搭建的流程。 我这边的PC环境为 WIN7专业版64bit。 Visual Studio Code STM32Cubemx ARM GCC 交叉编译工具链:  arm-none-eabi-gcc Windows版本的GCC编译器:MinGW-W64或MinGW或T

    2024年03月21日
    浏览(58)
  • ARM-系统移植(开发环境搭建)

    首先保证ubuntu连接网络成功 1. 安装步骤 作用:完成ubuntu和开发板之间传输文件 1)安装tftp服务器的安装包 sudo apt-get install tftpd-hpa  tftp-hpa        tftpd-hpa : 服务器端        tftp-hpa : 客户端   2)在家目录下,创建一个文件夹 tftpboot ,并且添加最高权限 cd ~ mkdir  tftpboot ch

    2024年02月07日
    浏览(41)
  • ARM接口编程—GPIO(exynox 4412平台)

    GPIO(General-purpose input/output)即通用型输入输出,GPIO可以控制连接在其之上的引脚实现信号的输入和输出 芯片的引脚与外部设备相连,从而实现与外部硬件设备的通讯、控制及信号采集等功能 我们用开发板的LED为例,查看LED电路原理图,可以看到LED2是连接在GPX2_7这个引脚上

    2024年02月09日
    浏览(26)
  • FreeSWITCH使用L16编码通信及raw数据提取

    环境:CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Python版本:3.9.12 PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。 在FreeSWITCH中体现为L16编码(switch_pcm.c文件),和网络平台进行音频对接时会

    2024年02月03日
    浏览(25)
  • QEMU搭建arm虚拟机开发环境

    使用git指令切换到对应的分支上,我这里使用的是stable-4.0的分支 git checkout -b stable-4.0 remotes/origin/stable-4.0 在工程的根目录下执行 ./configure --target-list=aarch64-linux-user,aarch64-softmmu --enable-virtfs --enable-debug 然后执行make,视情况是否要执行make install

    2024年01月25日
    浏览(28)
  • Qt5开发环境-银河麒麟V10ARM平台

    前言 近期因参与开发的某个软件需要适配银河麒麟v10arm 平台,于是自己搭建起一套Qt 开发环境,在此记录下具体过程,以供有需要的朋友参考。一开始手上并没有Arm架构的PC,先在Windows下用Vs2017和QtCreator 开发,软件开发快结束的时候Arm PC到了。Qt 没有提供可直接安装的arm架

    2024年02月12日
    浏览(46)
  • 【ZYNQ 开发】AMP双arm核交互 - 环境搭建(1)

    目录 1. 实验目的: 2. 实验原理介绍: 2.1 什么是AMP? 2.2  实验的功能框图: 3. 实验流程: 3.1 无中断的连续通信(1) 3.2 软中断通信(2) 3.3 硬中断通信(3) 3.4 AXI_LITE双口ram的建立(4) 4. 实验过程 4.1 创建amp环境及CPU的FSBL 4.2 创建CPU0的app应用程序 4.3 创建CPU1的app应用程序

    2024年02月21日
    浏览(30)
  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建

    搭建一个嵌入式开发环境主要包括以下几个部分: 安装交叉编译器 配置集成开发环境(IDE) 安装调试工具 下载和烧录程序 接下来,我们将详细介绍每个部分,并提供相应的实例。 安装交叉编译器 交叉编译器是用于将您编写的ARM汇编代码编译成可执行文件的工具。在本教程

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包