/* 设置寄存器启动传输 */
/* 1. 配置为 master tx mode */
IICCON |= (1<<7); /* TX mode, 在ACK周期释放SDA */
IICSTAT = (1<<4);
/* 2. 把从设备地址写入IICDS */
IICDS = msg->addr<<1;
/* 3. IICSTAT = 0xf0 , 数据即被发送出去, 将导致中断产生 */
IICSTAT = 0xf0;
/* 后续的传输由中断驱动 */
/* 循环等待中断处理完毕 */
发送模式:
IICDS = 第一个字节------> 发送完成---->产生中断,拉低SCL----------->在中断程序中判断状态--------->
IICDS = 第二个字节------->发送。。。
接收模式:
发起传输,接收第一个字节-------->产生中断------->SCL被拉低--------->中断程序中判断
关键字:I2C 启动传输 寄存器控制
引用地址:
I2C寄存器控制
推荐阅读最新更新时间:2024-11-19 13:02
STM32 I2C 硬件中断方式实现方法
流程图如下: I2C 中断处理函数如下: /** * @brief This function handles I2C1 Event interrupt request, tx, rx * buffer and number of bytes will be changed. * @param None * @retval None */ void I2C1_EV_IRQHandler(void) { #ifdef ARC_I2C_IRQ uint32_t i2cEvent; I2C_param_struct __IO *pI2C_param; pI2C_param = ARC_get_
[单片机]
基于嵌入式系统的I2C触摸屏设计
随着计算机相关技术的发展,ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核。嵌入式Linux系统具有开发源代码、内核稳定、可裁减性等特点,吸引着众多商业公司和自由软件开发者的目光,成为嵌入式系统领域不可或缺的操作系统之一。
1 电阻式触摸屏的工作原
[电源管理]
单片机的I/O口模拟I2C数据总线传输方式
需要做的工作小结如下: 1、MCU的I2C采用IO口模拟实现; 2、MCU作为I2C主设备与定时芯片RX-8025SA建立通信; 3、实现定时闹钟、定时唤醒及睡眠的功能; 调试过程: 1、IO口模拟I2C的代码在网上是可以找得到的。但是在具体的项目中,由于时钟的的不同在时序的控制上有区别,需要再调试。 在具体项目中调试I2C时,需要注意一下几点: 1)I 2C设备的地址,有的描述方法是7位,有的描述方法是8位。 注意只要代码和实际的设备地址相一致就好的。关于7位地址的使用方法无非描述的是8位地址的高7位,因为最后一位是固定的。(读的时候是1,写的时候是0)。 2)I2C通信协议本身并没有规定在通信过程中,传输的字
[单片机]
P87LPC764单片机的I2C总线显示电路
摘要:I2C总线是Philips公司推出的芯片间串行传输总线。目前,已有不少大电气公司半导体厂商推出了不少带有I2C总线接口的单片机。本文介绍一种利用Philips公司生产的P87LPC764单片机作为I2C总线控制器与I2C总线显示器件SAA1064构成的I2C显示电路,并给出相应的程序清单。
关键词:I2C总线 P87LPC764单片机 SAA1064 显示电路
I2C总线是Philips公司推出的芯片间串行传输总线。它以串行数据线(SDA)和串行时钟线(SCL)2根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。关于I2C总线的结构和工作原理详见参考文献1。
一、P87LPC764单片机
[单片机]
TI系列DSP的I2C模块配置与应用
I2C总线最早是由Philips公司提出的串行通信接口规范,标准I2C总线只使用两条线通信,能将多个具有I2C接口的设备连接,进行可靠的通信,连接到同一总线的I2C器件数量,只受总线最大电容400pF的限制,而且最高通信速率可以达到3.4Mb/s,由于I2C接口简单,使用方便,被很多芯片采用,成为一种广泛应用的接口 。 DSP即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的DSP供应商是TI公司,其TMS32系列产品占据了DSP市场近一半的份额,为了用户能方便快捷的进行系统的开发与集成,TI公司在一些型号的DSP中集成了I2C通信模块,本文以TMS320C6713为例
[嵌入式]
STM32 I2C 难点
I2C 总线在所有嵌入式系统中用得极广, 是一个工业级别的总线, 但由于STM32 是一个32位的MCU, 注定了他的I2C硬件接口将会功能强大, 但同时也会较难于控制,不象8位机,如AVR8位机的TWI(实际完全符合 I2C标准) 那么易用. 以下是我的STM32 I2C硬件接口编程的一些心得体会. 如果你选择了STM32, 说明了你的项目的需求是比较复杂的,使用EMBEDDED OS 和大量地运用中断+DMA的编程模型是必然的选择, 如果你的项目中用STM32,而你用模拟的I2C的话, 说明了两点: 一是浪费了STM32; 二, 如果你的项目很复杂的话,你会发现在项目的开发后期,好象STM32也比8位机快不了多少, WH
[单片机]
I2C串行扩展总线的负载能力是多少? 信号传输最高速率是多少?
答:由于I2C总线器件均为CMOS器件,因此总线具有足够的电流驱动能力。总线上扩展的器件数不是受制于电流驱动能力,而是受制于电容负载总量。I2C总线的电容负载能力为400 pF (通过驱动扩展可达4000pF)。每一器件的输入端都相当于一个等效电容,由于I2C总线扩展器件的连接关系为并联,因此,I2C总线总等效电容等于每一器件等效电容之和,等效电容的存在会造成传输信号波形的畸变,超出范围时,会导致数据传输出错。 I2C总线传输速率为100Kbit/s(改进后的规范为400Kbit/s)。
[单片机]
STM32F407之模拟I2C(二)之24C128
模拟I2C测试24C128的读写 #define GPIO_PORT_I2C GPIOH/* GPIO端口 */ #define I2C_SCL_PIN GPIO_Pin_4/* 连接到SCL时钟线的GPIO */ #define I2C_SDA_PIN GPIO_Pin_5/* 连接到SDA数据线的GPIO */ /* 定义读写SCL和SDA的宏 */ #define I2C_SCL_1() GPIO_PORT_I2C- BSRRL = I2C_SCL_PIN/* SCL = 1 */ #define I2C_SCL_0() GPIO_PORT_I2C- BSRRH = I2C_SCL_PIN/* SCL = 0 */ #de
[单片机]