学习一个新的开发板的第一步肯定是学习流水灯的过程,资料提供了两个版本的代码,一个是寄存器版本的,一个是库函数版本的。根据网上一些资料和自己的理解,考虑到后期整个系统复杂性,决定采用库函数版本开发,后期在应用的过程中了解相关寄存器,作进一步学习。
以下是流水灯设置部分代码。
RCC_AHB1PeriphClockCmd(RCC_GPIO_LED, ENABLE);
GPIO_InitStructure.GPIO_Pin = DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO_LED, &GPIO_InitStructure);
GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);
首先是允许IO口的时钟,然后是配置IO口相关寄存器的值,此处提供了一个结构体,结构体如下:
typedef struct
{
uint32_t GPIO_Pin;
/*!< Specifies the GPIO pins to be configured.This parameter can be any value of @ref GPIO_pins_define */
/!< Specifies the operating mode for the selected pins.This parameter can be a value of @ref GPIOM