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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1642|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

N32G455VEL7芯片如何通過(guò)DMA控制I2C寫(xiě)eeprom

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1062719 發(fā)表于 2023-10-30 15:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
芯片是N32G455VEL7,工具是keil5,用DMA來(lái)控制I2C寫(xiě)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ù)寄存器中了,然后怎么寫(xiě)到eeprom中呢?不應(yīng)該自動(dòng)寫(xiě)嗎?難道我要通過(guò) I2C_SendData()函數(shù)循環(huán)寫(xiě)入?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1062719 發(fā)表于 2023-11-2 15:06 | 只看該作者
要把寄存器的地址WriteAddr值也放在buf中
回復(fù)

使用道具 舉報(bào)

板凳
ID:1062719 發(fā)表于 2023-11-2 15:17 | 只看該作者
我這里不行的問(wèn)題是我傳進(jìn)來(lái)的地址是16位的,我只把低8位的地址發(fā)到data中去了
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2023-11-2 22:55 | 只看該作者

        DMA_InitStructure.Direction = DMA_DIR_PERIPH_DST
        DMA_InitStructure.BufSize = NumByteToWrite

這兩句能編譯通過(guò)???
回復(fù)

使用道具 舉報(bào)

5#
ID:1062719 發(fā)表于 2023-11-3 09:38 | 只看該作者
Hephaestus 發(fā)表于 2023-11-2 22:55
DMA_InitStructure.Direction = DMA_DIR_PERIPH_DST
        DMA_InitStructure.BufSize = NumB ...

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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产丝袜人妖cd露出 | 亚洲三区在线观看 | 欧美亚洲视频 | 男人久久天堂 | 91五月婷蜜桃综合 | 黄 色 毛片免费 | 美女爽到呻吟久久久久 | 毛片大全| av片免费| 欧美在线观看黄色 | 久草热视频 | 国产区在线 | 久久久www | 欧美性生活一区二区三区 | 国产高清一区二区三区 | 欧美一级二级视频 | 天天综合永久入口 | 国内精品伊人久久久久网站 | h在线免费观看 | 精品在线一区 | 免费看一区二区三区 | 午夜免费视频 | 欧美二区在线 | 成人一级黄色毛片 | 91资源在线 | 精品一区电影 | 国产日韩欧美一区二区 | 国产欧美一区二区三区久久 | 91影院在线观看 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 亚洲精品一区二区在线观看 | 欧美成人激情视频 | 欧美极品在线 | 国产精品一区免费 | 国产精品99久久久久久久久久久久 | 日本精品在线一区 | 热久久999 | 91成人| 久久久中文 | 亚洲精品一区二区在线观看 | 国产精品久久久久国产a级 欧美日韩国产免费 |