1111|0

6179

帖子

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 技术支持

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