資源簡介
STM32F4 硬件I2C 使用DMA
測試過OK

代碼片段和文件信息
/*=====================================================================================================*/
/*=====================================================================================================*/
#include?“stm32f4_system.h“
#include?“stm32f4_i2c.h“
/*=====================================================================================================*/
/*=====================================================================================================*/
#define?I2C1_DR_Address ((u32)0x40005410)
/*=====================================================================================================*/
/*=====================================================================================================*/
vu8*?I2C_ReadPtr;
vu8*?I2C_WritePtr;
vu32?I2C_TimeCnt?=?I2C_TIME;
/*=====================================================================================================*/
/*=====================================================================================================*/
DMA_InitTypeDef?DMA_InitStruct;
/*=====================================================================================================*/
/*=====================================================================================================*/
void?I2C_Config(?void?)
{
GPIO_InitTypeDef?GPIO_InitStruct;
NVIC_InitTypeDef?NVIC_InitStruct;
I2C_InitTypeDef?I2C_InitStruct;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB?|?RCC_AHB1Periph_DMA1?ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1?ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1?DISABLE);
GPIO_PinAFConfig(GPIOB?GPIO_PinSource6?GPIO_AF_I2C1);
GPIO_PinAFConfig(GPIOB?GPIO_PinSource7?GPIO_AF_I2C1);??
GPIO_InitStruct.GPIO_Pin?=?GPIO_Pin_6?|?GPIO_Pin_7;
GPIO_InitStruct.GPIO_Mode?=?GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_OType?=?GPIO_OType_OD;
GPIO_InitStruct.GPIO_PuPd??=?GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB?&GPIO_InitStruct);
NVIC_InitStruct.NVIC_IRQChannel?=?DMA1_Stream0_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority?=?0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority?=?0;
NVIC_InitStruct.NVIC_IRQChannelCmd?=?ENABLE;
NVIC_Init(&NVIC_InitStruct);
NVIC_InitStruct.NVIC_IRQChannel?=?DMA1_Stream6_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority?=?0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority?=?0;
NVIC_InitStruct.NVIC_IRQChannelCmd?=?ENABLE;
NVIC_Init(&NVIC_InitStruct);
DMA_ClearFlag(DMA1_Stream6?DMA_FLAG_FEIF6?|?DMA_FLAG_DMEIF6?|?DMA_FLAG_TEIF6?|
DMA_FLAG_HTIF6?|?DMA_FLAG_TCIF6);
DMA_Cmd(DMA1_Stream6?DISABLE);
DMA_DeInit(DMA1_Stream6);
DMA_InitStruct.DMA_Channel?=?DMA_Channel_1;
DMA_InitStruct.DMA_PeripheralbaseAddr?=?(u32)I2C1_DR_Address;
DMA_InitStruct.DMA_Memory0baseAddr?=?(u32)0;
DMA_InitStruct.DMA_DIR?=?DMA_DIR_MemoryToPeripheral;
DMA_InitStruct.DMA_BufferSize?=?0xFFFF;
DMA_InitStruct.DMA_PeripheralInc?=?DMA_PeripheralInc_Disable;
DMA_
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12807??2012-08-27?21:58??STM32F4?I2C\stm32f4_i2c.c
?????文件???????1222??2012-08-27?20:13??STM32F4?I2C\stm32f4_i2c.h
?????目錄??????????0??2013-05-27?02:59??STM32F4?I2C
-----------?---------??----------?-----??----
????????????????14029????????????????????3
- 上一篇:威爾金森wilkinson功率分配器
- 下一篇:IOS修改導航欄高度demo
評論
共有 條評論