您的位置 首页 > 数码极客

led如何设置串口号,led显示屏串口怎么设置!

用模块化方法重新完成EXP_USART1_Receive_IT_LED __简明指导文件

编程实现模块化设计,串口发送十六进制数字,控制LED灯亮相应秒数。例如,串口发送0x02,LED亮2秒。

(1) 配置SYS、外部晶振、时钟、gpio(PC12标签为“LED”)

(2) 配置USART1

配置UART1串口通信参数

配置UART1串口中断

配置中断优先级

(3) 设置生成代码文件方式并生成代码

generated files中勾选第一项“Generate peripheral initialization as a pair of ‘.c/h’ files per peripgheral”

配置代码生成模式

(4) 在固定位置添加程序

1> main.c

/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1)

{

HAL_UART_Receive_IT(&huart1,RxBuffer,1);

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

if(Rx_flag==1)

{

Rx_flag=0;

LED_light_delay(RxBuffer[0]);

}

}

/* USER CODE END 3 */

}

2> g

/* USER CODE BEGIN 2 */

void LED_light_delay(uint8_t time)

{

HAL_GPIO_WritePin (LED_GPIO_Port ,LED_Pin, GPIO_PIN_RESET);

HAL_Delay (time*1000);

HAL_GPIO_WritePin (LED_GPIO_Port ,LED_Pin, GPIO_PIN_SET);

}

/* USER CODE END 2 */

3> g

/* USER CODE BEGIN Prototypes */

void LED_light_delay(uint8_t time);

/* USER CODE END Prototypes */

4> u

/* USER CODE BEGIN 0 */

uint8_t RxBuffer[1];

uint8_t Rx_flag;

/* USER CODE END 0 */

/* USER CODE BEGIN 1 */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)

{

if(UartHandle->Instance == USART1) //首先判断是否是USART1的中断

{

Rx_flag=1;

HAL_UART_Receive_IT(&huart1,RxBuffer,1); //启动下一次接收

}

}

/* USER CODE END 1 */

5> u

/* USER CODE BEGIN Private defines */

extern uint8_t RxBuffer[1];

extern uint8_t Rx_flag;

/* USER CODE END Private defines */

/* USER CODE BEGIN Prototypes */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle);

/* USER CODE END Prototypes */

运行结果:

可观察到,通过发送相应数字,LED对应亮起相应秒数。

**注意串口发送时发送16进制数字

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“led如何设置串口号,led显示屏串口怎么设置,如何用串口控制led,led串口怎么设置”边界阅读