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

2019-07-20 08:35发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
HXYDJ
1楼-- · 2019-07-20 10:31
 精彩回答 2  元偷偷看……
szczyb1314
2楼-- · 2019-07-20 11:55
第一:发送数据之后等待发送完成,第二:想想第一次8个数据发送完成后,你的num是不是已经是8了,再来一个数据是不是又直接开始发送了?第三:开辟这么大的数组干啥,浪费了
welcomeplay
3楼-- · 2019-07-20 15:18
HXYDJ 发表于 2018-4-19 09:49
接收中断里面没有清标志位

recvFlag=0,清标志位
welcomeplay
4楼-- · 2019-07-20 15:33
 精彩回答 2  元偷偷看……
welcomeplay
5楼-- · 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);
            }
                 }
                }
        }


我改了一下还是这样
lzh
6楼-- · 2019-07-21 00:37
 精彩回答 2  元偷偷看……

一周热门 更多>