欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STM32程序中IIC做從機(jī)接收數(shù)據(jù)第9個(gè)CLK應(yīng)該是發(fā)送ACK,結(jié)果是NAK [打印本頁]

作者: 蝸牛的貝殼    時(shí)間: 2023-1-11 17:19
標(biāo)題: STM32程序中IIC做從機(jī)接收數(shù)據(jù)第9個(gè)CLK應(yīng)該是發(fā)送ACK,結(jié)果是NAK
STM32程序中IIC做從機(jī)接收數(shù)據(jù)第9個(gè)CLK應(yīng)該是發(fā)送ACK,結(jié)果是NAK。接收很多數(shù)據(jù),一開始的數(shù)據(jù)都很正常,會(huì)出現(xiàn)幾次數(shù)據(jù)發(fā)送NAK的現(xiàn)象。通過邏輯分析儀抓取數(shù)據(jù)如下:

IICNAK.JPG (57.89 KB, 下載次數(shù): 60)

IICNAK.JPG

作者: 蝸牛的貝殼    時(shí)間: 2023-1-11 17:24
各位幫忙看一下,上面項(xiàng)目中的IIC程序接收函數(shù)是否有問題,經(jīng)常是在第9個(gè)CLK時(shí)出問題,本意是希望發(fā)送ACK(SDA為0),結(jié)果發(fā)送成高電平(SDA為1),結(jié)果與程序不符合,不知道是哪的問題,幫忙看一下,謝謝!

IIC程序接收函數(shù)是否有問題.JPG (39.01 KB, 下載次數(shù): 63)

IIC程序接收函數(shù)是否有問題

IIC程序接收函數(shù)是否有問題

作者: coody_sz    時(shí)間: 2023-1-12 11:43
你設(shè)置的問題吧?I2C通信,不管主機(jī)還是從機(jī),總是接收方發(fā)出應(yīng)答。
作者: 蝸牛的貝殼    時(shí)間: 2023-1-12 16:51
coody_sz 發(fā)表于 2023-1-12 11:43
你設(shè)置的問題吧?I2C通信,不管主機(jī)還是從機(jī),總是接收方發(fā)出應(yīng)答。

謝謝您的回答,我是GPIO模擬的IIC,硬件上兩個(gè)IO口都分別上拉10kΩ的電阻,配置為推挽輸出,我的疑惑的地方是實(shí)際中也不全是NAK,有時(shí)很正常,回復(fù)的都是ACK,但有時(shí)應(yīng)答幾個(gè)ACK后就出現(xiàn)NAK,造成后面的數(shù)據(jù)亂了,但重新上電可能就全是ACK了,有種不穩(wěn)定的感覺。

作者: 蝸牛的貝殼    時(shí)間: 2023-1-12 16:54
以下是配置代碼,我是用GPIO 模擬的IIC,硬件上上拉10k電阻,我的疑惑i點(diǎn)在于有時(shí)通信正常,全都能回復(fù)ACK,但有時(shí)就在應(yīng)答幾個(gè)ACK后會(huì)出現(xiàn)NAK,造成后面紊亂了,重新上電重新測試又好了,有種不穩(wěn)定的感覺。

IIC配置.JPG (48.91 KB, 下載次數(shù): 67)

IIC配置.JPG

作者: Y_G_G    時(shí)間: 2023-1-13 08:58
蝸牛的貝殼 發(fā)表于 2023-1-12 16:54
以下是配置代碼,我是用GPIO 模擬的IIC,硬件上上拉10k電阻,我的疑惑i點(diǎn)在于有時(shí)通信正常,全都能回復(fù)ACK ...

咱就想問一下,能不能C+V復(fù)制代碼上來呢?別人想幫你,就可以自己仿真或者運(yùn)行一下
你截圖,別人還得一個(gè)一個(gè)字母的打出來呢.....
作者: 蝸牛的貝殼    時(shí)間: 2023-1-13 14:04
Y_G_G 發(fā)表于 2023-1-13 08:58
咱就想問一下,能不能C+V復(fù)制代碼上來呢?別人想幫你,就可以自己仿真或者運(yùn)行一下
你截圖,別人還得一 ...

好,多謝。
void i2c_slave_port_init( void )
{
                GPIO_InitTypeDef  GPIO_InitStructure;
                /*************************GPIO*******************/
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14| GPIO_Pin_15 ;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        //        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
                GPIO_Init(GPIOB, &GPIO_InitStructure);               
                I2C_SCL_H();
                I2C_SDA_H();               
                I2C_SDA_IN_SET();  //20230104
                 I2C_SCL_IN_SET();
}

static u8 ucI2C_recv_nmlbyte(void)
{
        volatile u8 i, tmp;   //11.30DT¸Ä
        tmp = 0x00;
        I2C_SDA_IN_SET();
        WaitIIC_SCLDown();
        for(i=0;i<8;i++)
        {       
                WaitIIC_SCLUp();
                tmp<<=1;       
                if(I2C_SDA_IN())
                tmp++;
               WaitIIC_SCLDown();
        }
              WaitIIC_SCLDown();
              Delay_us(2);  //¼óÑóê±
              I2C_SDA_OUT_SET();
                I2C_SDA_L();
             WaitIIC_SCLUp();
            WaitIIC_SCLDown();
            return tmp;
}
作者: Y_G_G    時(shí)間: 2023-1-13 21:46
蝸牛的貝殼 發(fā)表于 2023-1-13 14:04
好,多謝。
void i2c_slave_port_init( void )
{

真的無語了..........
我把我寫的IIC發(fā)給你吧,自己對(duì)比一下吧
iic_stm32.rar (2.25 KB, 下載次數(shù): 10)




作者: join22life    時(shí)間: 2024-9-4 22:02
51模擬IIC從機(jī),發(fā)現(xiàn)ACK這部分應(yīng)該是錯(cuò)的,雖然總線上看到都是應(yīng)答了但接收除第一個(gè)地址數(shù)據(jù)外,其他是錯(cuò)的,弄了兩天還是沒找到原因




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1