目录
GPIO
1.首先找到要点的灯,在板子上看到对应的白色丝印,比如绿灯D10.然后打开底板原理图找到LED灯
点亮绿灯只需要将网络标号LED4设置为低电平即可导通,绿灯亮。
CON1的5引脚
2.然后去核心板原理图去找对应的网络标号LED4,看到对应的引脚为PB0,即将PB0设置为低电平即可点亮
1)打开STM32CubeMX
然后:
然后:
然后:
然后:
打开keil
1)打开创建文件的路径下MDK-ARM里面的工程文件
2)打开main.c
4)编译(F7)烧写(F8),烧写插入STLink,打开stm32电源
效果:
任务:
????????实现流水灯:
????????黄灯亮一秒
????????蓝灯亮一秒
????????绿灯亮一秒
读PA8引脚状态,如果按下反转灯
HAL_Delay(100);//延时消抖
int??ret??=?HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8);
if(ret?==?1)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);//反转PB0
}
配置PA9,PA10分别为发送端和接收端
CubeMX
File->new?project?输入stm32f051k8,选择ux
打开生成后的工程文件中的main.c
打开串口调试工具:
uint8_t buttonState=0; //记录按键时灯的状态
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
//HAL_Delay(1000);
//按下就亮,放开就灭
/*
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)){
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
}else{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
}
*/
//按下就亮,再按就灭
/*
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET) {
HAL_Delay(50); // 增加延时以避免抖动
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET) {
if(buttonState == 0) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
buttonState = 1;
} else {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
buttonState = 0;
}
while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET); // 等待按键释放
}
}
*/
char buf[32]={0};
HAL_UART_Receive(&huart1,buf,sizeof(buf),100);
HAL_Delay(1000);
//串口1
HAL_UART_Transmit(&huart1,buf,sizeof(buf),1000);
HAL_Delay(2000);
}
/* USER CODE END 3 */
}
流水灯
uart串口实验