完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
目标:
通过CubeMx实现串口收发配置,用Protues运行仿真程序,串口输入a、b、c、d等指令,进行串口调试。 CubeMx配置: (1)导出源代码,并在main.c中添加如下定义,用来接收串口数据: /* USER CODE BEGIN PV */ uint8_t aRxBuffer; //接收中断缓冲 /* USER CODE END PV */ (2)在int main(void)主函数中,添加开启接收中断的语句: /* USER CODE BEGIN 2 */ HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1); /* USER CODE END 2 */ (3)在main.c下部添加中断回调函数: void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { unsigned char *pCmd = NULL; int len; /* Prevent unused argument(s) compilation warning */ UNUSED(huart); /* NOTE: This function Should not be modified, when the callback is needed, the HAL_UART_TxCpltCallback could be implemented in the user file */ switch(aRxBuffer){ case 'a': pCmd = "command arn"; len = strlen(pCmd); break; case 'b': pCmd = "command brn"; len = strlen(pCmd); break; case 'c': pCmd = "command crn"; len = strlen(pCmd); break; default: pCmd = "command cmdrn"; len = strlen(pCmd); break; } HAL_UART_Transmit(&huart1, (uint8_t *)pCmd, len,0xFFFF); HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1); //再开启接收中断 } /* USER CODE END 4 */ 然后建立protues工程: 设置hex文件路径和单片机晶振(8M) 设置串口物理参数以及和vspd虚拟串口的连接: 设置串口vspd(这一步在之前已经做好了): 启动protues仿真,打开调试串口: 如果希望在接收数据时解析参数,可以采用超时,或者rn的方式来分包。 到这里,本文目标就完成了,实际项目中,会加上DMA和队列来提高效率。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 20:48 , Processed in 0.857669 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号