ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

潘多拉 STM32L475 VE——开发板学习 (持续更新)

2021-12-07 22:33:47  阅读:341  来源: 互联网

标签:typedef 定义 STM32L475 总线 开发板 USB GPIO 变量 VE


     首先就是开发板的各个硬件的介绍:

◆ MCU : STM32L475VET6 , LQFP100 , SRAM : 128K , FLASH : 512K ◆ 外扩 SPI FLASH : W25Q128 , 16M 字节 ◆ 1 个电源指示灯(蓝色) ◆ 1 个 RGB 状态指示灯(红、绿、蓝三色) ◆ 4 个功能按钮,其中 WK_UP 兼具唤醒功能 ◆ 1 个启动模式配置选择接口 ◆ 1 个复位按钮 ◆ 1 个红外接收头,并配备一款小巧的红外遥控器 ◆ 1 个红外发射头 ◆ 1 个有源蜂鸣器 ◆ 1 个光环境传感器: AP3216C ◆ 1 个贴片电机,带 TC214B 电机驱动芯片 ◆ 1 个六轴传感器: ICM-20608 ◆ 1 个 TF 卡座 ◆ 1 个录音头( MIC/ 咪头) ◆ 1 个 ATK 模块接口,支持 ALIENTEK 蓝牙 /GPS/MPU6050/RGB 灯等模块 ◆ 1 个高性能音频解码芯片: ES8388 ◆ 1 个无线模块接口( WIRELESS ),支持 NRF24L01 无线模块 / 以太网模块 ◆ 1 路立体声耳机接口 ◆ 1 个温湿度传感器: AHT10 ◆ 1 个 TFTLCD 显示屏: 1.3 寸 240*240 分辨率 ◆ 1 个 WIFI 天线 ◆ 1 个 WIFI 模块: AP6181 ◆ 1 个电源开关,控制整个板的电源 ◆ 1 个 STM32F103C8T6 ,集成 ST LINK V2.1 功能 ◆ 1 个 ST LINK Micro USB 接口,可用于供电、程序下载、仿真调试和串口通讯 ◆ 1 个 USB OTG Micro USB 接口,用于供电、 USB Slave 和 USB Master ◆ 1 组 5V 电源供应 / 接入口 ◆ 1 组 3.3V 电源供应 / 接入口 ◆ 1 组 IO 口扩展接口,并带 3.3V 电源输出接口

功能挺多的,拆分下来就是几个传感器,几个功能模块,芯片啥的就不懂了,不过还是继续学习。

介绍一下开发软件吧,我是用的是keil和STM32CubeMX

 keil软件初始界面

 就是对这一个个按钮,看过去就是了。

注意的是刚开始要进行调试:

*选择驱动

接下来点Setting

之后就是编写好程序,下载了

 然后是在线调试程序(需要安装STM32 USB 虚拟串口驱动),程序上传到开发板之后才可以调试

基本上上面都是没什么用的东西,下面开始干货了--------------------------------STM32L4 基础知识

C语言

开始就是   位操作

 

 示例

            GPIOA->ODR &=0XFF0F; // 将第 4-7 位清 0                                          1111 1111 0000 1111             GPIOA->ODR |=0X0040; //设置相应位的值,即寄存器 第7位置1, ,不改变其他位的值,                                        00000000 0100 0000

IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器

       define 宏定义                 define 是 C 语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提           供方便。常见的格式:                                         #define 标识符 字符串

# ifdef #if defined 条件编译      类似于if else            #ifdef 标识符                 程序段 1            #else                 程序段 2            #endif 它的作用是:当标识符已经被定义过(一般是用#define 命令定义),则对程序段 1 进行编 译,否则编译程序段 2。 其中#else 部分也可以没有,即:            #ifdef                  程序段 1            #endif

              #ifdef HAL_GPIO_MODULE_ENABLED                    #include "stm32l4xx_hal_gpio.h"               #endif 这段代码的作用是判断宏定义标识符 HAL_GPIO_MODULE_ENABLED 是否被定义,如果 被定义了,那么就引入头文件 stm32l4xx_hal_gpio.h 。

    extern 变量申明

      C 语言中 extern 可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示 编译器遇到此变量和函数时在其他模块中寻找其定义。这里面要注意,对于 extern 申明变量可 以多次,但定义只有一次。在我们的代码中你会看到看到这样的语句: extern u16 USART_RX_STA; 这个语句是申明 USART_RX_STA 变量在其他文件中已经定义了,在这里要使用到。   

    typedef 类型别名

    typedef 用于为现有类型创建一个新的名字,或称为类型别名,用来简化变量的定义。 typedef 在 MDK 用得最多的就是定义结构体的类型别名和枚举类型             struct _GPIO              {                   __IO uint32_t MODER;                   __IO uint32_t OTYPER;                   …              }       定义了一个结构体 GPIO,这样我们定义变量的方式为:                                                   struct _GPIO GPIOA;// 定义结构体变量 GPIOA 而使用typedef是这样              typedef struct              {               __IO uint32_t MODER;               __IO uint32_t OTYPER;               …               } GPIO_TypeDef; Typedef 为结构体定义一个别名 GPIO_TypeDef,这样我们可以通过 GPIO_TypeDef 来定义结 构体变量:                 GPIO_TypeDef _GPIOA,_GPIOB;

STM32L4 总线架构

⚫ 五条主控总线:                         -Cortex-M4 内核 I 总线, D 总线和 S 总线                         - DMA1 存储器总线                         - DMA2 存储器总线 ⚫ 八条被控总线:                         - 内部 FLASH ICode 总线                         -内部 FLASH DCode 总线                         - 内部 SRAM1                         -内部 SRAM2                         - AHB1 外设                         - AHB2 外设                          - FMC 和 QSPI

标签:typedef,定义,STM32L475,总线,开发板,USB,GPIO,变量,VE
来源: https://blog.csdn.net/m0_52249955/article/details/121127457

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有