2016年3月2日星期三

Altium Designer 16 超级强大的布线技术帮助您充分发挥设计潜力

从复杂的电路板布局到创新的可穿戴技术,Altium Designer可以非常很容易地设计出有效无误的PCB板。凭借强大的布线技术,包括交互式布线模式和智能自动完成助手,您可以完全掌控PCB设计。

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的时钟:
  1. __HAL_RCC_GPIOA_CLK_ENABLE
复制代码
该函数定义可在文件stm32l4xx_hal_rcc.h找到,其实现函数如下:
  1. #define __HAL_RCC_GPIOA_CLK_ENABLE()           do { \
  2.                                                        __IO uint32_t tmpreg; \
  3.                                                       SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \
  4.                                                      /* Delay after an RCC peripheral clock enabling */ \
  5.                                                      tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_GPIOAEN); \
  6.                                                      UNUSED(tmpreg); \
  7.                                                      } while(0)
复制代码
通过实现函数可知,主要方式是通过RCC_AHB2ENR寄存器的第0位(GPIOA EN)置位来实现。

接下来我们需要定义一个GPIO_InitTypeDef结构体来设置GPIO的参数设置。
  1. 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探索板(顶视图)
STM32F746G-DISCO中文用户手册.jpg

图2. STM32F746G-DISCO探索板(底视图)
001.jpg




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开发板(顶视图)
1.jpg

图2. Nucleo 144开发板(底i视图)
DM00244518.jpg