stm32 i2c中止接受,聊包養經驗一向不克不及收到是怎么回事?

 STM32 i2c中止接受,一向不克不及收到,設置裝備擺設如下,ST的FAE請輔助解答包養女人,感謝!
列位年夜神,若有碰到相似題目,請供給處理計劃,
我的設置裝備包養網評價擺設如下:
void
I2C_Master_Receive_Config(I2C_DataStruct *st_RxData,
                 uint8_t       u8_MemAddr,
                 uint8_t     *pu8_D包養網車馬費ata,
        包養俱樂部         uint16_t     u16_Siz包養sde
                 )
{
    uint32_t u32_timeOu“你會讀書,你上過學,對吧?”藍玉華頓時對這個丫鬟充滿了好奇。t;
    if (((uint8_t *)NULL == pu8_Data) || (0 == u16_Size))
    {
     return;
    }
    st_RxData->pu8_BuffPtr = pu8_Data;
    st_Rx包養俱樂部Data->u16_Size    = u16_Size;
     
    包養甜心//I2C_Master_Config( gst_RxData,u8_MemAddr,s包養appt_RxData->u16包養合約_Size, I2C_GENERATE_START_READ,I2C_ISR_TC);
 
     u32_TimeOut = GET_SYSTEM_TICK_VALUE();
    while (__HAL_I2C_GET_FLAG(I2C_ISR_BUSY))
    {
     if (GET_SYSTEM_TICK_ECLIPSE(u32_TimeOut) > CHECK_STATUS_TIMEROUT_TICK)
     {
         break;
   包養甜心網  }
    }
    /* 1: send 1 byte EEPROM start address 長期包養*/
    I2C_TransferConf包養sdig(I2C1_SLAVE_ADDR, 1, I2C_CR2_AUTOEND, I2C_GENERATE_START_WRITE);
    u32_TimeOut = GET_SYSTEM_TICK_VALUE();
    while (!__HAL_I2C_GET_FLAG(I2C_IS包養網推薦R_TXIS))
    {
     if (GET_SYSTEM_TICK_ECLIPSE包養價格ptt(u32_TimeOut) > CHECK_STATUS_TIMEROUT_TICK)
     {
    包養價格ptt     break;
     }
    }
    I2C_CHANNEL->TXDR = u8_MemAddr;
    u32_TimeOut      = GET_SYSTEM_TICK_VALUE();
    /* Wait until TXE 包養sdflag is set */
    whi包養站長le (!長期包養__HAL_I2C_GET_FLAG(I2C_ISR_TC))
包養一個月    {
     if (GET_SYSTEM_TICK_ECLIPSE(包養女人u32_TimeOut) > CHECK_STATUS_TIMEROUT_TICK)
     {
         break;
     }
    }
     if (u16_Size > TXRX_DATA_MAX)
    {
     st_RxData->u16_Count = TXRX_DATA_MAX;
    }
    else
    {
     st_RxData->u16_Count = u16_Size;
    }
    if ((st_RxData->u16_Count == TXRX_DATA_MAX)    (st_RxData->u16_Cou包養網車馬費nt 包養網心得u16_Count, I2C_CR2_RELOAD, I2C_GENERATE_START_READ);
    }
    甜心寶貝包養網else
    {
     I2C_TransferConfig(I2C1_SLAVE_ADDR, st_RxData->u“他讓女兒不要太早去找婆婆打招呼,因為婆婆沒有早起的習慣。如果女兒太早去跟媽媽打招呼,她婆婆會有早起的壓力,因16_Count, I這不是夢,因為沒有一個夢可以五天五夜保持清醒,它可以讓夢中的一切都像身臨其境一樣真實。每一刻,每一刻,每一次呼2C_CR2_AUTOEND, I2C_GENERATE_START_READ);
    }
包養意思    I2C_包養價格CHANNEL->CR1 |= I2C_CR1_NACKIE | I2C_CR1_RXIE |包養違法 包養一個月I2C_CR1_TCIE;// | I2C_CR1_STOPIE;[/td]

• stm32 F103與51單機停止I2C通訊無法接受到數據在中止輪迴判定1270
• 調試STM32F103ZE的I2C:SCL一向為高並且不進進I2C事務中止6527
2. 設置裝備“我一定會坐大轎子嫁給你,有禮有節進門。”他深情而溫柔地看著她,用堅定的眼神和語氣說道。擺設I2C時鐘:依據您的STM32型號,設置裝備擺設I2C的時鐘頻率。例如,應用RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); 來啟用I2C1的時鐘。
3. 初始化I2C:應用I2C_Init包養意思()函數包養dcard初始化I2C外設,設置I2C形式、通訊速度等參數。
4. 設置裝備擺設I2C中止:應用I2C_ITConfig()函數啟用I2C中止,并設置裝備擺設中止優先級。
5. 設置裝備擺設NVIC:啟用I2C中止,應用NVIC包養管道_Init()函數設置NVIC中止優先級。
6. 啟動I2C:應用I2C_Cmd(E包養價格pttNABLE)函數啟動I2C。
7. 發送I2C地址和讀取數據:應用I2C_AcknowledgeConfig(ENABLE)函數啟用應對,然后應用I2C_Send7bitAddress()函數發送目的裝備的7位地址。接上去,應用I2C_ReceiveData()函數讀取數據。
8. 檢討I2C中止狀況:在中止辦事例程中,檢討I2C中止狀況,如I2C_GetITStatus()函數。
9. 肅清I2C中止標志:在中止辦事例程中,應用I2C_ClearITPendingBit()函數肅清I2C中止標志。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。