2016年3月2日星期三
Altium Designer 16 超级强大的布线技术帮助您充分发挥设计潜力
从复杂的电路板布局到创新的可穿戴技术,Altium Designer可以非常很容易地设计出有效无误的PCB板。凭借强大的布线技术,包括交互式布线模式和智能自动完成助手,您可以完全掌控PCB设计。
2016年2月22日星期一
2016年2月14日星期日
【NUCLEO-L476RG学习笔记】基于HAL库的GPIO例程介绍
在上一篇文章中,我们介绍了搭建Keil开发环境,并建立了第一个LED例程。现在我们来看看这个例程是怎么工作的。
根据NUCLEO-L476RG的原理图,可以看出LD2二极管连接到PA5,USER按键连接到PC13。
使用GPIO的第一步时使能时钟。该功能通过RCC(Reset and clock control)寄存器控制。所有的GPIO连接到AHB2总线。HAL库提供了专门的函数来启用GPIOA的时钟:
- __HAL_RCC_GPIOA_CLK_ENABLE
该函数定义可在文件stm32l4xx_hal_rcc.h找到,其实现函数如下:
- #define __HAL_RCC_GPIOA_CLK_ENABLE() do { \
- __IO uint32_t tmpreg; \
- SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \
- /* Delay after an RCC peripheral clock enabling */ \
- tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \
- UNUSED(tmpreg); \
- } while(0)
通过实现函数可知,主要方式是通过RCC_AHB2ENR寄存器的第0位(GPIOA EN)置位来实现。
接下来我们需要定义一个GPIO_InitTypeDef结构体来设置GPIO的参数设置。
- GPIO_InitTypeDef GPIO_InitStruct;
该结构体有5个参数:
1. Pin 选择引脚编号
2. Mode 设置GPIO的工作模式
3. Pull 设置引脚的上拉/下拉
4. Speed 设置GPIO输出的最大频率
5. Alternate 设置选择引脚的复用功能
其中每项都有自己的选项
■ Pin:指定需要配置的GPIO管脚,该选项可以是以下的任何值:
■ GPIO_PIN_0: 选择引脚0;
■ GPIO_PIN_1: 选择引脚1;
■ GPIO_PIN_2: 选择引脚2;
■ GPIO_PIN_3: 选择引脚3;
■ GPIO_PIN_4: 选择引脚4;
■ GPIO_PIN_5: 选择引脚5;
■ GPIO_PIN_6: 选择引脚6;
■ GPIO_PIN_7: 选择引脚7;
■ GPIO_PIN_8: 选择引脚8;
■ GPIO_PIN_9: 选择引脚9;
■ GPIO_PIN_10: 选择引脚10;
■ GPIO_PIN_11: 选择引脚11;
■ GPIO_PIN_12: 选择引脚12;
■ GPIO_PIN_13: 选择引脚13;
■ GPIO_PIN_14: 选择引脚14;
■ GPIO_PIN_15: 选择引脚15;
■ GPIO_PIN_All: 选择所有的引脚;
■ GPIO_PIN_MASK:引脚掩码;
■ Mode:指定选择引脚的工作模式
■ GPIO_MODE_INPUT:悬浮输入模式
■ GPIO_MODE_OUTPUT_PP:推挽输出模式
■ GPIO_MODE_OUTPUT_OD:漏极开路输出模式
■ GPIO_MODE_AF_PP:复用功能推挽模式
■ GPIO_MODE_AF_OD:复用功能漏极开路模式
■ GPIO_MODE_ANALOG:模拟模式
■ GPIO_MODE_ANALOG_ADC_CONTROL:模拟模式,用于ADC转换
■ GPIO_MODE_IT_RISING:上升沿触发检测的外部中断模式
■ GPIO_MODE_IT_FALLING:下降沿触发检测的外部中断模式
■ GPIO_MODE_IT_RISING_FALLING:上升/下降沿触发检测的外部中断模式
■ GPIO_MODE_EVT_RISING:上升沿触发检测的外部事件模式
■ GPIO_MODE_EVT_FALLING:下降沿触发检测的外部事件模式
■ GPIO_MODE_EVT_RISING_FALLING:上升/下降沿触发检测的外部事件模式
■ Pull:指定引脚的上拉/下拉
■ GPIO_NOPULL:无上拉/下拉电阻
■ GPIO_PULLUP:带有上拉电阻
■ GPIO_PULLDOWN:带有下拉电阻
■ Speed:指定引脚的输出频率:
■ GPIO_SPEED_FREQ_LOW:输出频率最大为5MHz
■ GPIO_SPEED_FREQ_MEDIUM:输出频率范围5MHz-25MHz
■ GPIO_SPEED_FREQ_HIGH:输出频率范围25MHz-50MHz
■ GPIO_SPEED_FREQ_VERY_HIGH::输出频率范围50MHz-80MHz
HAL库提供了GPIO的初始化函数HAL_GPIO_Init()。该函数声明位于stm32l4xx_hal_gpio.h文件中。
STM32F746G-DISCO探索板中文用户手册
UM1907用户手册
STM32F7系列探索套件(STM32F746NG微控制器)
简介
STM32F746G-DISCO探索板是用于评估意法半导体基于ARM Cortex-M7内核的STM32F746NGH6微控制器的完整演示和开发平台。该微控制器具有4个I2C、6个SPI(其中3个可复用为单工I2S)、SDMMC、4个USART、4个UART、2个CAN、3个12位的ADC、2个12位的DAC、2个SAI、8到14位数码相机模块接口、内置320+16+4K字节的SRAM及1M字节的Flash、USB高速OTG、USB全速OTG、以太网MAC、FMC接口、四通道SPI接口、JTAG调试支持。该探索板提供所需的一切,使得用户可以快速上手并且方便地开发应用程序的一切。
探索板上全面的的硬件功能,有助于评估几乎所有的外设(USB高速OTG、USB全速OTG、10/100Mb以太网、microSD卡、USART、带有插孔输入和输出的SAI音频DAC立体声音频、MEMS数字麦克风、SDRAM、四通道SPI Flash存储芯片、带有电容式多点触控面板的4.3寸彩色TFT-LCD、SPDIF RCA输入等),并且开发自己的应用程序。 Arduino Uno V3接口使其能够根据具体应用方便地连接扩展板或者子板。集成的ST-LINK/V2-1提供了一个STM32微控制器的嵌入式调试器和编程器。
图1. STM32F746G-DISCO探索板(顶视图)
图2. STM32F746G-DISCO探索板(底视图)
UM1974 - STM32 Nucleo-144开发板中文用户手册
简介
STM32 Nucleo-144开发板(NUCLEO-F207ZG、NUCLEO-F303ZE、NUCLEO-F429ZI、NUCLEO-F446ZE、NUCLEO-F746ZG)为用户试验新想法提供了一条成本低廉且灵活的途径,并且用户可以依据从性能、功耗和功能的不同组合中选择出的任何STM32微控制器产品线构建原型。Arduino Uno的扩展接口ST Zio接口可以访问更多的外设,并且通过选择众多的专属扩展板,ST Morpho接口很容易地扩展STM32 Nucleo 开放式开发平台的功能。STM32 Nucleo-144开发板集成了调试器/编程器 ST-LINK/V2-1 ,因此不需要任何单独的仿真器。STM32 Nucleo 板自带 STM32 全面的软件 HAL 库,其中包含各种打包的软件示例,并且直接访问ARM mbed 在线资源。
图1. Nucleo 144开发板(顶视图)
图2. Nucleo 144开发板(底i视图)
订阅:
博文 (Atom)