目录
三、硬件部分
【1】点灯实验
【2】按键控制灯实验
【3】uart串口实验
核心代码:
实验视频
实现流水灯
uart串口实验
三、硬件部分
GPIO
【1】点灯实验
1.首先找到要点的灯,在板子上看到对应的白色丝印,比如绿灯D10.然后打开底板原理图找到LED灯
点亮绿灯只需要将网络标号LED4设置为低电平即可导通,绿灯亮。
CON1的5引脚
2.然后去核心板原理图去找对应的网络标号LED4,看到对应的引脚为PB0,即将PB0设置为低电平即可点亮
- 配置STM32CubeMX
1)打开STM32CubeMX
- 双击第二个Ux
然后:
然后:
然后:
然后:
打开keil
1)打开创建文件的路径下MDK-ARM里面的工程文件
2)打开main.c
- 编写代码,注意写在BEGIN和END之间
4)编译(F7)烧写(F8),烧写插入STLink,打开stm32电源
- 按复位键
效果:
任务:
实现流水灯:
黄灯亮一秒
蓝灯亮一秒
绿灯亮一秒
【2】按键控制灯实验
- 找到按键的位置PA8
- 配置STM32CubeMX,PA8,输入,PB0输出
- 生成KEIL工程
- 写代码
读PA8引脚状态,如果按下反转灯
HAL_Delay(100);//延时消抖
int ret = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8);
if(ret == 1)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);//反转PB0
}
【3】uart串口实验
配置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);//串口1HAL_UART_Transmit(&huart1,buf,sizeof(buf),1000);HAL_Delay(2000);}/* USER CODE END 3 */
}
实验视频
实现流水灯
流水灯
uart串口实验
uart串口实验