[原创] 【STM32WBA52CG】+3 外设应用一 按键和点灯

damiaa   2023-8-6 20:39 楼主

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

【NUCLEO-WBA52CG】+1开箱贴

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

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

新建一个项目

203708nerw0wrs0ju9e1u5.png

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

203708i5gipg8iawlkzmxk.png

IO口是这样的:

203708vz5ccw86g767b5zm.png

203708zzghghr0tr5ighvh.png

203708vqud5p4qaeglqzkz.png

加入控制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 */

}

结果:

203708a7ko24rrg4ccez72.jpg

203708l98og3o7rprpe000.jpg

203708snt6nrre254w8c4q.jpg

按键如下:

203708gg8y74g64gvd8z0g.png

下面测试按键和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 */

}

测试结果:

203708phtsm3hhvetlo3tm.jpg

203708knxccv1sohp5jcj5.jpg

203708tj9uaceh2ua2otqj.jpg

谢谢大家

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

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复