|
这项测试是一个所有到手的开发板的必做,本实例也不例外。 首先打开main.h文档,可以看到在STM32CubeMX中定义的命名引脚,本节仅列出LEDx的定义,见下列表: #define LED3_Pin GPIO_PIN_15 #define LED3_GPIO_Port GPIOA #define LED0_Pin GPIO_PIN_10 #define LED0_GPIO_Port GPIOC #define LED1_Pin GPIO_PIN_11 #define LED1_GPIO_Port GPIOC #define LED2_Pin GPIO_PIN_12 #define LED2_GPIO_Port GPIOC PC_10~12,和PA_15,4个LED的IO口。 打开gpio.c可以看到定义的LED0~LED3的语句,当然,此文档所有定义的引脚都有: //Configure GPIO pin : PtPin GPIO_InitStruct.Pin = LED3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(LED3_GPIO_Port, &GPIO_InitStruct); //Configure GPIO pins : PCPin PCPin PCPin GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); 驱显LED的设置定义代码已好了,下边需要在主函数中定义驱显,本例计划轮显的方式。 在开头定义一个整形变量: int ledk=0; 定义一个轮显函数,用switch case函数,代码如下: //TEST LEDs void ledTest(void){ switch(ledk){ case 0: HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET); ledk++;break; case 1: HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET); ledk++;break; case 2: HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET); ledk++;break; case 3: HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_RESET); ledk++;break; default: HAL_GPIO_WritePin(GPIOA,LED3_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED0_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,LED2_Pin,GPIO_PIN_SET); ledk=0;break; } } 在主函数体内加上: ledTest(); HAL_Delay(100); 编译下载就可以了,见GIF动画图片22_1。 |
22_1
|
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
2025软件工具兔哥知道
STM32之继电器模块
STM32固件库分享,超全系列整理
【MCU实战经验】基于STM32F103的二轮平衡车(6轴上位机 源代...
10张图带你完全掌握STM32 GPIO,从入门到精通,收藏就够了!
如果你解决了这些问题,就可以直接学STM32
STM32的分类和选型
微信公众号
手机版