有经验的大侠过来帮着看下是啥意思的啊

2019-07-25 15:21发布

  我在调试程序的时候,遇到下边的问题的,,调试的是利用32位CPU的UART来发送数据的,但道理说UART发送数据一直是以一个字节的往出发送的,但是现在的主CPU是32位的,采集到的数据也是双字节的,这就需要将这双字节的数据从UART发送出去的,,但道理说是需要通过移位操作的,将双字节数据分两次通过UART发送出去的,但是我看程序库中的原函数的,有些疑惑的,大家帮着解释下的吧。。
     请看下边的程序代码:
  u16 vibra_send[35]={0x5442,1,0,0};   //

    USART1_Send((u8*)vibra_send,70);
   这是发送70个字节的数据的
  
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
tongbu2015
2019-07-25 21:13
然后是内部调用的函数及相关程序的:
static u8 *pUSART1_TxBuff;

void USART1_Send(u8 *buff,s16 len)
{
        //USART_Cmd(USART1, ENABLE);
        pUSART1_TxBuff=buff;
        USART1_TxCount=len;       
        USART1_SendSta=USART_SENDSTA_RUN;
        //USART_ClearITPendingBit(USART1,USART_IT_TXE);
        USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
        while(USART1_SendSta==USART_SENDSTA_RUN);
        //        PWR_EnterSLEEPMode(0,PWR_SLEEPEntry_WFI);           //
        USART_ITConfig(USART1, USART_IT_TXE, DISABLE);   /* Disable the USART1 Transmit interrupt */
        //USART_Cmd(USART1, DISABLE);       
}

一周热门 更多>