STM32硬件IIC之DMA传输数据

发布者:PositiveEnergy最新更新时间:2017-10-24 来源: eefocus关键字:STM32  硬件IIC  DMA传输数据 手机看文章 扫描二维码
随时随地手机看文章

这里咱们说3个点 
1.检查IIC总线上是否有指定地址的器件 
2.IIC读取数据 
3.IIC写数据 
下面来一个一个详细说明

1.检查IIC总线上是否有指定地址的器件

1.判断是否总线忙,如果忙则等待
2.产生起始位
3.等待起始位产生完成
4.发送器件地址(这里选择读写都是可以的)
5.等待是否有ACK位回应,(这里有两种判断方法1.通过判断ACK标志2.通过判断ADDR标志),最好使用ADDR标志位
6.清楚ADDR标志位
7.产生停止位
8.通过判断是否有ACK,就可以判断是否有指定地址的器件123456789

2.IIC读取数据

1.判断是否总线忙,如果忙则等待
2.产生起始位
3.等待起始位产生完成
4.发送器件地址,这里方向上选择写数据
5.等待发送完成,通过判断ADDR标志位是否置位
6.清除ADDR标志位
7.同时判断TXE位,这个在发送数据完成之后,也会被置位
8.发送要读取内存的地址
9.等待TXE位置位
10.再次发送起始位
11.等待起始位产生完成
12.发送器件地址,这里方向上选择读数据
13.等待发送完成,通过判断ADDR标志位是否置位
14.使能LAST位,使能这个,就能做到在传输最后一个数据的时候,自动产生NACK
14.开始用DMA传输下面的数据12345678910111213141516

3.IIC写数据

1.判断是否总线忙,如果忙则等待
2.产生起始位
3.等待起始位产生完成
4.发送器件地址,这里方向上选择写数据
5.等待发送完成,通过判断ADDR标志位是否置位
6.清除ADDR标志位
7.同时判断TXE位,这个在发送数据完成之后,也会被置位
8.发送要读取内存的地址
9.等待TXE位置位
10.开始用DMA传输下面的数据
11.在DMA传输完成中断中产生停止位


关键字:STM32  硬件IIC  DMA传输数据 引用地址:STM32硬件IIC之DMA传输数据

上一篇:STM32串口9位数据,无奇偶校验
下一篇:stm32 TIM2 重映射

推荐阅读最新更新时间:2024-03-16 15:41

STM32_ADC+DMA
ADC+DMA 下面来讲一下STM32的ADC应用。 先闲扯一点其他事情,是我自己的理解。 STM32的优点在哪里? 除去宣传环节,细细分析。 STM32时钟不算快,72MHZ, 也不能扩展大容量的RAM FLASH, 同样没有DSP那样强大的指令集。 它的优势在哪里呢? ---就在快速采集数据,快速处理上。 ARM的特点就是方便。 这个快速采集,高性能的ADC就是一个很好的体现, 12位精度,最快1uS的转换速度,通常具备2个以上独立的ADC控制器, 这意味着, STM32可以同时对多个模拟量进行快速采集, 这个特性不是一般的MCU具有的。 以上高性能的ADC,配合相对比较块的指令集和一些特色的算法支持, 就构成了STM32在电
[单片机]
STM32 USB设计--硬件
STM32芯片内部集成了USB外设,大大减轻了USB电路的设计负担,只需设计USB接口电路,就可以实现基于STM32芯片的电路板的USB通信设计。(本文将具体讲述基于STM32F103RBT6芯片的USB设计)本文为硬件篇。 首先,我们来认识一下STM32F103RBT6芯片。 其中USB相关引脚为PA11(D-),PA12(D+)引脚。就是通过这两个引脚实现STM32F103RBT6的USB通讯。 图1 STM32F103RBT6芯片引脚图 其次,我们简单来认识一下USB的构造(以A型公口、B型母口为例) 图2 USB A型公口 图3 USB B型母口 表1 USB接口引脚说明 1 VCC(+
[单片机]
<font color='red'>STM32</font> USB设计--<font color='red'>硬件</font>篇
stm32 高级定时器产生PWM
用stm32的高级定时器TIM1和TIM8产生PWM,需要注意: 1.都有TIM1,但只有flash容量大于256K的大容量单片机才有TIM8 2.高级定时器相对于通用定时器,多了TIM_CtrlPWMOutputs(TIM8, ENABLE); TIM1产生四路PWM程序: static void TIM1_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); RCC_APB2PeriphClockCmd(RCC_
[单片机]
聊聊STM32芯片的DFU编程及相关话题
相当部分的 STM32芯片都带USB模块,有时我们会考虑利用STM32芯片的USB模块进行程序代码的下载或升级。USB协议中有专门针对设备固件升级的类协议,即可以通过DFU类协议进行产品固件的加载或更新。 关于STM32产品的DFU程序下载和升级,ST官方有相关的资料文档。可以去 www.stmcu.com.cn 或者去 www.st.com 搜索DFUse下载相关资料。 有个用户手册UM0412详细介绍了如何利用ST官方软件工具DfuSe进行相关编程操作。顺便提醒下,下载DfuSe安装包解压运行DfuSe_Demo_Vxx_Setup.exe之后,还不算安装完成,还得安装针对DfuSe的WINDOWS环境下的
[单片机]
聊聊<font color='red'>STM32</font>芯片的DFU编程及相关话题
【STM库应用】stm32 之 中断按键初始化(注意事项)
之前做终端按键的时候都是只做了一个,没有做多个,昨天在把所有按键都设置成中断模式的时候遇到问题,于是乎还跟一个网上的哥们进行了热议,后来还是我发现了问题!最终把问题给解决了! 我的按键的GPIO连接有点奇葩,他不是连续的,这可能就是竞赛板故意设置的难度吧! 首先管脚初始化: GPIO_InitTypeDef key; RCC- APB2ENR |= ((1 0)|(1 2)|(1 3)); key.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_8; key.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOA, &key); key.GPIO
[单片机]
【STM库应用】<font color='red'>stm32</font> 之 中断按键初始化(注意事项)
STM32单片机的原理详解 STM32时钟系统的配置方法
1.概述 时钟 是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。 每个时钟 ti ck,系统都会处理一步数据,这样才能让工作不出现紊乱。 2.原理 首先,任何外设都需要时钟, 51单片机 , STM32 ,430等等,因为 寄存器 是由D触发器组成的,往触发器里面写东西,前提条件是有时钟输入。 51单片机不需要配置时钟,是因为一个时钟开了之后所有的功能都可以用了,而这个时钟是默认开启的,比如有一个水库,水库有很多个门,这些门默认是开启的,所以每个门都会出水,我们需要哪个门的水的时候可以直接用,
[单片机]
<font color='red'>STM32</font>单片机的原理详解 <font color='red'>STM32</font>时钟系统的配置方法
STM32单片机PWM输出测试
环境: 主机:XP 开发环境:MDK4.23 MCU:STM32F103CBT6 说明: 使用内部8M晶振,倍频到64M供给TIM3定时器,PA6(通道1)上产生640K,50%方波 源代码: 初始化时钟: //初始化RCC时钟 void init_rcc(void) { //将外设 RCC寄存器重设为缺省值 RCC_DeInit(); //内部晶振使能 RCC_HSICmd(ENABLE); //等待工作稳定 while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); //LSI的启动,提供给看门狗时
[单片机]
<font color='red'>STM32</font>单片机PWM输出测试
STM32中采用DMA实现方波的产生和捕获
1 STM32微控制器介绍 STM32系列微控制器是ST公司基于Cortex-M3内核的高集成度的微控制器。它在性能、价格、功耗和实时性方面树立了一个新的标杆,集成了Cortex-M3内核,以及双ADC、多用途的通用时钟TIMx、RTC、I2C、SPI、UART、CAN、DMA、USB等丰富的外设。其功耗在全速72MHz所有模块都打开时也仅仅为36 mA,在低功耗模式下其功耗仅为2μA。 2 DMA和TIMx简介 STM32系列微控制器均含有DMA和通用时钟TIMx模块。其低端型号中仅包含DMA1,支持7个通道;高端型号还包括DMA2,支持5个通道。它的每个通道可任意指定工作模式,如内存到内存、内存到外设或外设到内存等。当
[单片机]
<font color='red'>STM32</font>中采用<font color='red'>DMA</font>实现方波的产生和捕获
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved