| 本帖最后由 tottionly 于 2020-4-1 17:01 编辑 
 en_result_t Spi_SendData(en_spi_channel_t enCh,uint8_t u8Data)
{
    uint32_t u32TimeOut;
    ASSERT(IS_VALID_CH(enCh));
    u32TimeOut = 0xffff;
    if(Spi0 == enCh)
    {
        while(--u32TimeOut)
        {
            if(TRUE == M0P_SPI0->STAT_f.TXE)
            {
                break;
            }
        }
                
        if(u32TimeOut == 0)
        {
            return ErrorTimeout;
        }
                M0P_SPI0->DATA = u8Data;
        u32TimeOut = 0xffff;
        while(--u32TimeOut)
        {
            if(TRUE == M0P_SPI0->STAT_f.RXNE)
            {
                break;
            }
        }
        if(u32TimeOut == 0)
        {
            return ErrorTimeout;
        }
                u8Data = M0P_SPI0->DATA;
        
    }
    else
    {
        while(--u32TimeOut)
        {
            if(TRUE == M0P_SPI1->STAT_f.TXE)
            {
                break;
            }
        }
        if(u32TimeOut == 0)
        {
            return ErrorTimeout;
        }
        M0P_SPI1->DATA = u8Data;
        u32TimeOut = 0xffff;
        while(--u32TimeOut)
        {
            if(TRUE == M0P_SPI1->STAT_f.RXNE)
            {
                break;
            }
        }
        if(u32TimeOut == 0)
        {
            return ErrorTimeout;
        }
        u8Data = M0P_SPI1->DATA; 
    }
    return Ok;
}
这是华大HC32F030的库函数。
 请教下:
 1. 这里发送一个字节,为什么要判断RXNE?
 2. 为什么最后对u8Data赋值?这不是形参吗?
 
 
 |