资源简介
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
相关资源
- stm32f103zet6开发板LCD显示屏源码
- STM32直流电机控制程序
- STM32彩屏显示AD采集数据并通过RS485接
- 基于STM32F407的幅频特性和相频特性测
- 官方3dmax病毒查杀.rar
- STM32F103VCT6+W5500 TCP 服务端通信成功开
- 基于STM32F103的W5500 TCP Client测试程序
- 基于STM32的MP4播放器带gps定位,界面显
- cc1110 TDMA代码
-
VIA Telecom CBP5.5/5.6 CDMA ba
seband Proces - STM32 MPU6050-DMP-欧拉角串口输出 滤波
- STM32的FSMC驱动ILI9341屏幕
- STM32系列flash
- Ti的DAC8552、DAC8554驱动程序
- AD5761R驱动程序,支持STM32
- stm32串行驱动12864字符,图片
- STM32 定时器捕获PWM波 以及占空比
- STM32学习笔记STM32学习笔记
- I2C SPEC (I2C Specification)
- STM32 USART1 USART2 UASRT3 UART4 UART5串口通信
- STM32F103产生正弦波DEMO
- STM32 MCP2515 CAN 通信收发程序,调试通
- stm32f103rc_hcsr04.rar
- windows下perl模块编译文件:dmake
- STM32F103 WS2812真彩LED灯驱动例程
- stm32PWM呼吸灯
- echarts上各个省的3DMap以及地图上加柱
- STM32-DS18B20程序
- 基于STM32的寝室指纹门锁设计
- stm32f1对MLX90614ESF读取数据
评论
共有 条评论