注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
damiaa的个人空间 http://home.eeworld.com.cn/space-uid-59433.html [收藏] [复制] [分享] [RSS]
日志

【STM32WBA52CG】+3 外设应用一 按键和点灯

已有 302 次阅读2023-8-6 20:39 |个人分类:stm32wba

STM32WBA52CG】+3 STM32WBA 外设应用 按键和点灯

【NUCLEO-WBA52CG】+1开箱贴

STM32WBA52CG】+3 STM32WBA Web Bluetooth试玩 之后继续

感觉外设的使用还是蛮有必要的,于是先玩玩这个吧。

新建一个项目

选择配置为缺省 生成代码如下

IO口是这样的:

加入控制led的代码

 

while (1)

{

HAL_GPIO_WritePin(GPIOB, LD2_Pin|LD3_Pin|LD1_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD2_Pin|LD3_Pin|LD1_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD1_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD1_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

}

结果:

按键如下:

下面测试按键和led

修改主程序代码如下:

void key_check(void){

uint8_t keyval1 = HAL_GPIO_ReadPin( B1_GPIO_Port, B1_Pin);

if(keyval1 == 1)

HAL_GPIO_WritePin(GPIOB, LD1_Pin, GPIO_PIN_SET);

else

HAL_GPIO_WritePin(GPIOB, LD1_Pin, GPIO_PIN_RESET);

uint8_t keyval2 = HAL_GPIO_ReadPin( B2_GPIO_Port, B2_Pin);

if(keyval2 == 1)

HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_SET);

else

HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_RESET);

uint8_t keyval3 = HAL_GPIO_ReadPin( B3_GPIO_Port, B3_Pin);

if(keyval3 == 1)

HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_SET);

else

HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_RESET);

}

/* USER CODE END 2 */

/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1)

{

if(1) //测试按键和led

{

key_check();

HAL_Delay(100);

}

if(0)//测试led

{

HAL_GPIO_WritePin(GPIOB, LD2_Pin|LD3_Pin|LD1_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD2_Pin|LD3_Pin|LD1_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD1_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD1_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_SET);

HAL_Delay(1000);

HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_RESET);

HAL_Delay(1000);

}

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

}

/* USER CODE END 3 */

}

测试结果:

谢谢大家

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章