完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目的:
【1】开机后,向串口1发送“hello world!”。 【2】串口1收到字节指令“0xA1”,打开LED1,发送“LED1 Open!”。 【3】串口1收到字节指令“0xA2”,关闭LED1,发送“LED1 Closed!”。 【4】在串口发送过程中,打开LED0作为发送数据指示灯。 串口也是单片机的内部资源,所以并不需要外接。本次实验只用到了一个串口,USART1_TX与PA9复用,USART1_RX与PA10复用。只需要用到两个led作为指示灯。
1.串口配置+中断使能
1.宏定义led亮灭+定义字符串: /* USER CODE BEGIN Includes */ #define LED0_ON() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET)//LED0点亮 #define LED0_OFF() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET)//LED0熄灭 #define LED1_ON() HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET)//LED1点亮 #define LED1_OFF() HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET)//LED1熄灭 uint8_t Tx_str1[] = "hello world!rn"; uint8_t Tx_str2[] = "LED1 Open!rn"; uint8_t Tx_str3[] = "LED1 Closed!rn"; uint8_t Rx_dat = 0; /* USER CODE END Includes */ 2.串口发送功能(阻塞式) /* USER CODE BEGIN 2 */ HAL_UART_Transmit(&huart1,Tx_str1,sizeof(Tx_str1),10000); //向上位机发送“hello world!” HAL_UART_Receive_IT(&huart1,&Rx_dat,1); //接收数据 /* USER CODE END 2 */ 3.串口接收功能(非阻塞式) 编写回调函数 /* USER CODE BEGIN PTD */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance == USART1) { if(Rx_dat == 0xa1) { HAL_UART_Transmit(&huart1,Tx_str2,sizeof(Tx_str2),10000); huart1.RxState = HAL_UART_STATE_READY; __HAL_UART_FLUSH_DRREGISTER(&huart1);//这两句如果不加就只能接收到一次 HAL_UART_Receive_IT(&huart1,&Rx_dat,1);//这两句如果不加就只能接收到一次 } else if(Rx_dat == 0xa2) { HAL_UART_Transmit(&huart1,Tx_str3,sizeof(Tx_str3),10000); huart1.RxState = HAL_UART_STATE_READY;//这两句如果不加就只能接收到一次 __HAL_UART_FLUSH_DRREGISTER(&huart1);//这两句如果不加就只能接收到一次 HAL_UART_Receive_IT(&huart1,&Rx_dat,1); } } } /* USER CODE END PTD */ |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1945浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
750浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
584浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
567浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 12:03 , Processed in 0.942507 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号