各位兄弟姐妹,小弟初学stm32f103,现在我想用串口接收一个固定长度的数组,但是收的数据不对?

2019-07-20 08:35发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
welcomeplay
2019-07-20 19:00
welcomeplay 发表于 2018-4-19 10:19
这一行改一下  USART_SendData(USART1,rx_buf[num]);
另外我想数据随便发,但是我只想收前8 个数据

uint8_t rx_buf[1024];
uint16_t num=0;
uint8_t recvFlag = 0;
uint8_t i;
void USART1_IRQHandler(void)
   {
      if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  
        {
                                       
                                        rx_buf[num++]=USART_ReceiveData(USART1);
                                       
                                        if(num>7)
                                                        {
                                                         num=0;
                                                         recvFlag=1;
                                                        }
                                }
                                                                                 
                                               
          }

int main(void)
{
         uint16_t i;
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
         delay_init();
         My_USART1_Init();
         while(1)
         {
                                if(recvFlag){                                                    
                                         recvFlag=0;
                                         for(i=0;i<8;i++){                                                                                                               
                                           USART_SendData(USART1,rx_buf[i++]);
                                                 delay_ms(5);
            }
                 }
                }
        }


我改了一下还是这样

一周热门 更多>