试验测试通过
/**
* @brief GPIO初始化
* @param 无
* @retval 无
*/
static void APP_GpioInit()
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE(); /* GPIOA时钟使能 */
/* 初始化GPIOB5 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */
GPIO_InitStruct.Pull = GPIO_PULLUP; /* 使能上拉 */
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; /* GPIO速度 */
/* GPIO初始化 */
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
int main(void)
{
u8 i;
/* 初始化所有外设,Flash接口,SysTick */
HAL_Init();
/* 初始化GPIO */
APP_GpioInit();
/* 配置系统时钟 */
APP_SystemClockConfig();
while (1)
{
GPIOA->ODR=GPIO_PIN_All;
for(i=0;i<9;i++)
{
HAL_Delay(300);
GPIOA->ODR&=~(GPIO_PIN_0<<i);//LED左移1位 亮1~8
}
for(i=0;i<9;i++)
{
HAL_Delay(300);
GPIOA->ODR|=(GPIO_PIN_7>>i);//LED0右移1位 灭8~1
}
}
}
|