记录串口电脑往下发,没有写进数组的问题

 1  void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
 2 {
 3   /* Prevent unused argument(s) compilation warning */
 4   UNUSED(huart);
 5     if(RxCnt>=10)
 6     {
 8         RxCnt=0;
10 //将数组指向的地方的前sizeof内存用0X00替换,将数组初始化为0 11 HAL_UART_Transmit(&huart1,RxBuff,10,0xffff); 12 memset(RxBuff,0x00,sizeof(RxBuff));//函数的功能:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化 14 } 15 else 16 { 17 RxBuff[RxCnt++]=RxData;//这个数传过来就要写入数组 19 } 20 // HAL_UART_Transmit(&huart1,RxBuff,10,0xffff); 21 HAL_UART_Receive_IT(&huart1,(uint8_t*)&RxData,1);//在接受中断中接受数据 26 }

原因:第一种可能,没有按复位键

第2:发送函数是发送到电脑,同时也是写入数组,个数够才可以发送

第20行存在导致故障,且一开始if逻辑相反,导致

 

posted @ 2024-10-30 18:35  Zer0ne1  阅读(5)  评论(0编辑  收藏  举报