完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
测试软件及硬件平台
代码记录 在程序一开始定义几个变量: unsigned char uRx_Data[255] = {0}; //存储数组 unsigned char uLength = 0; //接收数据长度 unsigned char aRxBuffer; //接收临时数据 初始化代码 /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);//打开接收中断 /* USER CODE END 2 */ 初始化过程中因为CubeMX只进行了开启中断的操作,并未打开接收中断,所以需要在MX_USART2_UART_Init();之后打开接收中断,打开的办法就是使用HAL_UART_Receive_IT();这个HAL库函数进行操作。 不定长接收代码 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//接收完成回调函数 { if(uLength >= 255) //溢出判断 { uLength = 0; memset(uRx_Data,0x00,sizeof(uRx_Data)); //HAL_UART_Transmit(&huart2, (uint8_t *)uRx_Data, sizeof(uRx_Data),0xFFFF); } else { uRx_Data[uLength++] = aRxBuffer; //接收数据转存 if((uRx_Data[uLength-1] == 0x0A)&&(uRx_Data[uLength-2] == 0x0D)) //判断结束位是否为rn { HAL_UART_Transmit(&huart2, (uint8_t *)uRx_Data, uLength,0xFFFF); //将收到的信息发送出去 uLength = 0; memset(uRx_Data,0x00,sizeof(uRx_Data)); //清空数组,需要在头文件添加#include "string.h" } } HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1); //再开启接收中断 } 不定长接收核心部分结束,代码测试可用。仅作记录,欢迎交流。 |
|
|
|
只有小组成员才能发言,加入小组>>
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
407 浏览 1 评论
262 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
230 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
602 浏览 2 评论
627 浏览 2 评论
1345浏览 9评论
STM32F429 U盘IAP升级程序跳转APP异常的原因?
26浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
23浏览 3评论
STM32F103时钟硬件程序会卡在“while((SPI3->SR SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);”导致异常复位的原因?
119浏览 3评论
10浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 14:52 , Processed in 0.802164 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号