两片STM32之间I2C通信

发布者:清新生活最新更新时间:2018-04-16 来源: eefocus关键字:STM32  I2C通信 手机看文章 扫描二维码
随时随地手机看文章

硬件平台:master:stm32f401re slave:stm32f401ce 

开发平台:keil 5.18 

操作系统:win7


如上篇所讲,将401CE配置为I2C从机,并设置为从发送模式。 

主机的I2C与从机相同,同样配置即可。同时增加uart设置,方便将接收到的数据打印出来。


主机的设置为主接收:


printf("\n\rStart....\n\r");


/* Put I2C peripheral in reception process */ 

/* Timeout is set to 10S */ 

while(HAL_I2C_Master_Receive(&I2cHandle, (uint16_t)I2C_ADDRESS, (uint8_t *)aRxBuffer, RXBUFFERSIZE, 10000) != HAL_OK)

{

    /* Error_Handler() function is called when Timeout error occurs.When Acknowledge failure occurs (Slave don't acknowledge it's address) Master restarts communication */

    if (HAL_I2C_GetError(&I2cHandle) != HAL_I2C_ERROR_AF)

    {

        printf("\n\rReceive failed\n");

    }   

}


printf("\n\r %s \n\r", aRxBuffer);


/* Infinite loop */  

while (1)

{

}


注:这里I2C_ADDRESS为与我们设置的从机地址相同


将两篇STM的板子I2C连接起来,我们会在串口调试助手里发现从机发送过来的数据,即上篇的”…hello world…“。


关键字:STM32  I2C通信 引用地址:两片STM32之间I2C通信

上一篇:STM32设置为I2C从机
下一篇:STM32学习之路:I2C的基本读写

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

STM32 Cubemax(一)——PWM配置及控制SG90舵机
前言 这是一篇基于STM32F429的保姆级入门的用CubeMAX配置生成并编写的控制舵机SG90的教程 一、SG90舵机 常见的SG90舵机 SG90引出三条线,分别是控制线(橙色),VCC(红色),GND(黑色),用杜邦线依次连接在开发板上即可 SG90舵机要求工作在频率为50HZ——周期为20ms的PWM波,且对应信号的高低电平在0.5ms - 2.5ms之间,对应的舵机转动角度如下表所示(当然也可以按照这个线性的对应关系去达到转动自己想要的角度,如想要转动60°,则高电平脉宽为大概为1.2ms,具体能不能转到特定的角度还和舵机的精度有关) 二、CubeMax配置 1.选型(这里用实验的开发板为正点原子的F4
[单片机]
<font color='red'>STM32</font> Cubemax(一)——PWM配置及控制SG90舵机
STM32基础知识4-va_list原理及用法
VA_LIST 是在C语言中解决变参问题的一组宏,变参问题是指参数的个数不定,可以是传入一个参数也可以是多个;可变参数中的每个参数的类型可以不同,也可以相同;可变参数的每个参数并没有实际的名称与之相对应,用起来是很灵活。 下面是va_list的用法示例 : #include stdarg.h int AveInt(int,...); void main() { printf( %d/t ,AveInt(2,2,3)); printf( %d/t ,AveInt(4,2,4,6,8)); return; } int AveInt(int v,...) { int ReturnValue=0;
[单片机]
GPRS模块与STM32的数据传输
函数清单和注意事项 (底层驱动部分) 1. IO口初始化:控制 IO 和通讯 IO,控制包括电源控制,复位和低功耗模式,通讯就是串口啦,相信大家应该都很熟悉了。 当然在这个基础上还可以组合出复位的功能,复位在GPRS连接出错的时候会用到。 2. 串口初始化:模块的波特率为115200,8位数据位,1位停止位,没有校验位和流控。 串口还需要两个发送函数,发送一个字节和发送一串字符串的。串口中断处理函数放到后面说。 3. AT指令操作:发送AT指令 设置GPRS数据长度 发送GPRS数据内容 接收GPRS数据内容
[单片机]
STM32移植STemWin后使用四点或两点触摸校准
测试开发板的连接:https://item.taobao.com/item.htm?id=557618550100 开发板PCB完整工程连接: http://www.cirmall.com/circuit/7 ... F%EF%BC%81#/details 这是校准.c文件 /* 文件说明: 1.屏幕校准程序的扫描要用一个定时器中断来扫描 2.校准后可以直接是调用TOUCH_Scan()即可,GUI_TOUCH_X_MeasureX();,GUI_TOUCH_X_MeasureY(); 可以不用,同时LCDConf_FlexColor_Template.c中的LCD_X_Config();函数中的两个GUI_
[单片机]
stm32的堆、栈、全局变量的分配地址
在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。 总的分布如下所示: 1、栈区(stack) 临时创建的局部变量存放在栈区。 函数调用时,其入口参数存放在栈区。 函数返回时,其返回值存放在栈区。 const定义的局部变量存放在栈区。 2、堆区(heap) 堆区用于存放程序运行中被动态分布的内存段,可增可减。 可以有malloc等函数实现动态分布内存。 有malloc函数分布的内存,必须用free进行内存释放,否则会造成内存泄漏。 3、全局区(静态区) 全局区有.bss段和.data段组成,可读可写。 4
[单片机]
<font color='red'>stm32</font>的堆、栈、全局变量的分配地址
stm32 USART_IT_IDLE中断 一帧数据
USART_IT_IDLE中断,是串口收到一帧数据后,发生的中断。也可以叫做一包数据 USART_IT_IDLE和USART_IT_RXNE区别 当接收到1个字节,会产生USART_IT_RXNE中断 当接收到一帧数据,就会产生USART_IT_IDLE中断 清中断方法 //USART_IT_RXNE USART_ClearITPendingBit(USART1, USART_IT_RXNE); //USART_IT_IDLE USART1- SR; //先读SR寄存器 USART1- DR; //再读DR寄存器 使用举例 u8 count; u8 flag; void uart_init(u32
[单片机]
<font color='red'>stm32</font> USART_IT_IDLE中断 一帧数据
STM32之DMA原理
一、DMA简介 1、DMA简介   DMA(Direct Memory Access:直接内存存取)是一种可以大大减轻CPU工作量的数据转移方式。   CPU有转移数据、计算、控制程序转移等很多功能,但其实转移数据(尤其是转移大量数据)是可以不需要CPU参与。比如希望外设A的数据拷贝到外设B,只要给两种外设提供一条数据通路,再加上一些控制转移的部件就可以完成数据的拷贝。   DMA就是基于以上设想设计的,它的作用就是解决大量数据转移过度消耗CPU资源的问题。有了DMA使CPU更专注于更加实用的操作--计算、控制等。 2、DMA的工作原理    DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CP
[单片机]
<font color='red'>STM32</font>之DMA原理
基于STM32的实时心率检测仪设计
一、开发环境介绍 主控芯片: STM32F103ZET6 代码编程软件: keil5 心率检测模块: PulseSensor WIFI模块: ESP8266 --可选的。直接使用串口有线传输给上位机也可以。 上位机: C++(QT) 设计的。 支持PC机电脑、Android手机显示。 与上位机的传输协议: 支持串口传输、WIFI网络传输两种。 如果是PC就可以直接连接串口传输数据,如果不方便可以直接通过WIFI---TCP协议传输。 二、PulseSensor心率模块介绍 PulseSensor 是一款用于脉搏心率测量的光电反射式模拟传感器。 可以将其佩戴于手指、耳垂、手腕等处,通过杜邦线--导线将引脚连接到单片机,可将采集到
[单片机]
基于<font color='red'>STM32</font>的实时心率检测仪设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

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