久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2399|回復: 8
收起左側

STM32程序中IIC做從機接收數據第9個CLK應該是發送ACK,結果是NAK

[復制鏈接]
ID:137662 發表于 2023-1-11 17:19 | 顯示全部樓層 |閱讀模式
STM32程序中IIC做從機接收數據第9個CLK應該是發送ACK,結果是NAK。接收很多數據,一開始的數據都很正常,會出現幾次數據發送NAK的現象。通過邏輯分析儀抓取數據如下:

IICNAK.JPG
回復

使用道具 舉報

ID:137662 發表于 2023-1-11 17:24 | 顯示全部樓層
各位幫忙看一下,上面項目中的IIC程序接收函數是否有問題,經常是在第9個CLK時出問題,本意是希望發送ACK(SDA為0),結果發送成高電平(SDA為1),結果與程序不符合,不知道是哪的問題,幫忙看一下,謝謝!

IIC程序接收函數是否有問題

IIC程序接收函數是否有問題
回復

使用道具 舉報

ID:1034262 發表于 2023-1-12 11:43 | 顯示全部樓層
你設置的問題吧?I2C通信,不管主機還是從機,總是接收方發出應答。
回復

使用道具 舉報

ID:137662 發表于 2023-1-12 16:51 | 顯示全部樓層
coody_sz 發表于 2023-1-12 11:43
你設置的問題吧?I2C通信,不管主機還是從機,總是接收方發出應答。

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

使用道具 舉報

ID:137662 發表于 2023-1-12 16:54 | 顯示全部樓層
以下是配置代碼,我是用GPIO 模擬的IIC,硬件上上拉10k電阻,我的疑惑i點在于有時通信正常,全都能回復ACK,但有時就在應答幾個ACK后會出現NAK,造成后面紊亂了,重新上電重新測試又好了,有種不穩定的感覺。
IIC配置.JPG
回復

使用道具 舉報

ID:401564 發表于 2023-1-13 08:58 | 顯示全部樓層
蝸牛的貝殼 發表于 2023-1-12 16:54
以下是配置代碼,我是用GPIO 模擬的IIC,硬件上上拉10k電阻,我的疑惑i點在于有時通信正常,全都能回復ACK ...

咱就想問一下,能不能C+V復制代碼上來呢?別人想幫你,就可以自己仿真或者運行一下
你截圖,別人還得一個一個字母的打出來呢.....
回復

使用道具 舉報

ID:137662 發表于 2023-1-13 14:04 | 顯示全部樓層
Y_G_G 發表于 2023-1-13 08:58
咱就想問一下,能不能C+V復制代碼上來呢?別人想幫你,就可以自己仿真或者運行一下
你截圖,別人還得一 ...

好,多謝。
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;
}
回復

使用道具 舉報

ID:401564 發表于 2023-1-13 21:46 | 顯示全部樓層
蝸牛的貝殼 發表于 2023-1-13 14:04
好,多謝。
void i2c_slave_port_init( void )
{

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

使用道具 舉報

ID:84492 發表于 2024-9-4 22:02 | 顯示全部樓層
51模擬IIC從機,發現ACK這部分應該是錯的,雖然總線上看到都是應答了但接收除第一個地址數據外,其他是錯的,弄了兩天還是沒找到原因
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91在线免费视频 | 中文字幕一区二区三区不卡 | 成人免费视频观看视频 | 精品视频在线观看 | 神马久久久久久久久久 | 天天噜天天干 | 在线观看国产www | 成年人网站免费视频 | 亚洲一区二区三区在线视频 | 国产极品粉嫩美女呻吟在线看人 | 欧美性猛片aaaaaaa做受 | 国产精品久久久久久久久久久久久 | 欧美中文在线 | 一区二区三区国产精品 | av先锋资源 | 18性欧美| 一级黄色在线 | 成人性视频免费网站 | 男人的天堂久久 | 久久久亚洲一区 | 香蕉大人久久国产成人av | 国产精品污www一区二区三区 | 高清色 | 天天操夜夜艹 | 激情a | 久久久久久久久久久久久久国产 | 国产精品久久久久久久7777 | 狠狠艹 | 精品福利一区二区三区 | 色偷偷噜噜噜亚洲男人 | 国产精品久久久久久一区二区三区 | a级在线观看 | 久久亚洲天堂 | 综合色播 | 国产成人综合久久 | av片免费| 91精品国产综合久久香蕉麻豆 | 欧美一级电影免费观看 | 91久久国产| 日日爱夜夜操 | 免费同性女女aaa免费网站 |