STM32接收不到陀螺仪的数据

用的原子阿波罗F429,基本内容是从一个串口读数据然后通过另一个串口发出去,通过cubeMX配置的,代码的关键部分如下

static unsigned char RxBuffer[RXBUFFERSIZE];
static unsigned char TxBuffer[RXBUFFERSIZE];
static unsigned char aRxBuffer=0;    
uint8_t Uart1_Rx_Cnt = 0;
uint8_t i=0;

int main(void)
{  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);

HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);

  while (1)
  {

       HAL_Delay(20);
        HAL_UART_Transmit_IT(&huart1, (uint8_t *)&TxBuffer, 100);
  }
}

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
                HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
    UNUSED(huart);
    if(huart==&huart2)
    {
        RxBuffer[Uart1_Rx_Cnt++] = aRxBuffer; 
        if(Uart1_Rx_Cnt==100)
        {
            for(i=0;i<100;i++)
            {
                TxBuffer[i]=RxBuffer[i];
            }
            Uart1_Rx_Cnt=0;

        }
        HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);
    }
}

 

现在情况是,使用另一台PC用串口助手通过一根USB转232的线接到开发板COM2口,发数据,usart1可以正常输出。然后换陀螺仪(直接输出232信号)接到COM2口,就无法正常工作,通过pb1的led灯判断程序根本没有进入中断。

已知:程序应该是没有问题的;陀螺仪都是广播式发送的,通过USB转接线接到pc上用串口助手可以正常读取数据,陀螺仪部分也是没有问题的;开发板可以接收到PC串口助手发来的数据,开发板硬件部分应该也没问题;Tx Rx引脚我也换着接过,没有用,也不是这方面的问题。其他的波特率什么的都是一样的。

感觉就很奇怪,是不是哪里漏了什么细节。

首先用电脑接个串口工具接到板子上看看能不能读到串口信息,看下发送接收正不正常,不正常就是初始化没弄好。然后再尝试读陀螺仪数据