1086|0

6117

帖子

4

TA的资源

版主

楼主
 

【STM32WBA52CG】+3 外设应用一 按键和点灯 [复制链接]

本帖最后由 damiaa 于 2023-8-6 20:46 编辑

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

【NUCLEO-WBA52CG】+1开箱贴

STM32WBA52CG】+2 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 */

}

测试结果:

谢谢大家

此帖出自无线连接论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表