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

標(biāo)題: N32G455VEL7芯片如何通過DMA控制I2C寫eeprom [打印本頁]

作者: pyq151818    時(shí)間: 2023-10-30 15:45
標(biāo)題: N32G455VEL7芯片如何通過DMA控制I2C寫eeprom
芯片是N32G455VEL7,工具是keil5,用DMA來控制I2C寫eeprom 程序如下
void I2C_EE_PageWrite(u8* pBuffer, u16 WriteAddr, u16 NumByteToWrite)
{
        DMA_InitType  DMA_InitStructure;
        /* enter rountine safely */
        /* DMA initialization */
        
        DMA_DeInit(DMA1_CH4);
        DMA_InitStructure.PeriphAddr = (u32)&I2Cx->DAT;
        DMA_InitStructure.MemAddr = (u32)pBuffer;
        DMA_InitStructure.Direction = DMA_DIR_PERIPH_DST
        DMA_InitStructure.BufSize = NumByteToWrite
        DMA_InitStructure.PeriphInc = DMA_PERIPH_INC_DISABLE;
        DMA_InitStructure.DMA_MemoryInc = DMA_MEM_INC_ENABLE;
        DMA_InitStructure.PeriphDataSize = DMA_MemoryDataSize_Byte;
        DMA_InitStructure.MemDataSize = DMA_MemoryDataSize_Byte;
        DMA_InitStructure.CircularMode = DMA_MODE_NORMAL;
        DMA_InitStructure.Priority = DMA_PRIORITY_VERY_HIGH;
        DMA_InitStructure.Mem2Mem = DMA_M2M_DISABLE;
        
        DMA_Init(DMA1_CH4, &DMA_InitStructure);
        
        I2C_ConfigAck(I2Cx, ENABLE);
        I2C_GenerateStart(I2Cx, ENABLE);
        while (!I2C_CheckEvent(I2Cx, I2C_EVT_MASTER_MODE_FLAG)) // EV5
        {
        };
        I2C_SendAddr7bit(I2Cx, EEPROM_ADDR, I2C_DIRECTION_SEND);
        while (!I2C_CheckEvent(I2Cx, I2C_EVT_MASTER_TXMODE_FLAG)) // EV6
        {
        };
        
        I2C_SendData(I2Cx, WriteAddr);//地址
        while (!I2C_CheckEvent(I2Cx, I2C_EVT_MASTER_DATA_SENDED))
        {
        };
               
        I2C_EnableDMA(I2Cx, ENABLE);
        DMA_EnableChannel(DMA1_CH4, ENABLE);
        while (!DMA_GetFlagStatus(DMA1_FLAG_TC4, DMA1))
                ;
        I2C_GenerateStop(I2Cx, ENABLE);
        I2C_EE_WriteOnePageCompleted();
}

我已經(jīng)將數(shù)據(jù)發(fā)送到數(shù)據(jù)寄存器中了,然后怎么寫到eeprom中呢?不應(yīng)該自動(dòng)寫嗎?難道我要通過 I2C_SendData()函數(shù)循環(huán)寫入?

作者: pyq151818    時(shí)間: 2023-11-2 15:06
要把寄存器的地址WriteAddr值也放在buf中
作者: pyq151818    時(shí)間: 2023-11-2 15:17
我這里不行的問題是我傳進(jìn)來的地址是16位的,我只把低8位的地址發(fā)到data中去了
作者: Hephaestus    時(shí)間: 2023-11-2 22:55

        DMA_InitStructure.Direction = DMA_DIR_PERIPH_DST
        DMA_InitStructure.BufSize = NumByteToWrite

這兩句能編譯通過???
作者: pyq151818    時(shí)間: 2023-11-3 09:38
Hephaestus 發(fā)表于 2023-11-2 22:55
DMA_InitStructure.Direction = DMA_DIR_PERIPH_DST
        DMA_InitStructure.BufSize = NumB ...

這個(gè)肯定編譯不過,這個(gè)是我在放上來時(shí),刪除后面測試時(shí)的其他參數(shù)時(shí)刪除多了




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 青草在线视频 | 精品国产欧美 | 精品久久久久久久久久久久久久久久 | 日本激情网 | 国产成人99久久亚洲综合精品 | 欧美激情成人 | 五月婷婷综合网 | 国产一区二区不卡 | 在线亚洲天堂 | 97精品超碰一区二区三区 | 欧美理论片在线观看 | 中文国产字幕 | 久久精品二区 | 99久久婷婷国产综合精品草原 | 黄色免费av | 欧美a级成人淫片免费看 | 日本不卡中文字幕 | 久在线观看 | 亚洲一级二级 | 国产伦精品一区二区三毛 | 青青国产在线 | 成人免费视频国产免费麻豆 | 综合二区 | 欧美女同视频 | 国产中文字幕av | 国产精品一区二区免费 | 精品99视频| 欧美日本在线 | 在线免费观看毛片 | 亚洲一区二区在线视频 | 日本韩国欧美中文字幕 | 亚洲精品麻豆 | 毛茸茸free性熟hd | 欧美精品亚洲 | 欧美专区在线 | 丁香色婷婷 | 日本黄色免费视频 | 亚洲视频国产 | 国产一区二区三区在线视频 | 日韩欧美在线视频 | 国产传媒在线播放 |