一、RCC初始化

  1. /* Setup the microcontroller system. Initialize the Embedded Flash Interface,
  2. initialize the PLL and update the SystemFrequency variable. */
  3. SystemInit();
  4. /* Enable peripheral clocks --------------------------------------------------*/
  5. /* GPIOB Periph clock enable */
  6. //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
  7. //启动GPIO模块时钟
  8. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
  9. //把雕饰设置普通IO口
  10. GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
  11. /* I2C1 Periph clock enable */
  12. RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);

二、I2C_初始化

  1. /* Configure I2C1 pins: SCL and SDA */
  2. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
  3. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  4. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
  5. GPIO_Init(GPIOB, &GPIO_InitStructure);
  6. I2C_InitTypeDef I2C_InitStructure;
  7. /* I2C configuration */
  8. I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  9. I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
  10. I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
  11. I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  12. I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  13. I2C_InitStructure.I2C_ClockSpeed = 100000;
  14. /* I2C Peripheral Enable */
  15. I2C_Cmd(I2C1, ENABLE);
  16. /* Apply I2C configuration after enabling it */
  17. I2C_Init(I2C1, &I2C_InitStructure);

三、USART初始化

  1. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  2. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  3. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  4. GPIO_Init(GPIOA, &GPIO_InitStructure);
  5. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  6. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  7. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  8. GPIO_Init(GPIOA, &GPIO_InitStructure);
  9. USART_InitStructure.USART_BaudRate = 115200;
  10. USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  11. USART_InitStructure.USART_StopBits = USART_StopBits_1;
  12. USART_InitStructure.USART_Parity = USART_Parity_No;
  13. USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  14. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  15. USART_Init(USART1, &USART_InitStructure);
  16. USART_Cmd(USART1, ENABLE);

四、main函数测试程序

  1. while (1)
  2. {
  3. ,);
  4. I2C_EE_BufferRead(SendBuff, 0, 3);
  5. Delay(0xfffff);
  6. fPutString(SendBuff, 15);
  7. }

遇到的问题,我用以前的RCC初始化程序怎么都无法启动I2C。一直在  while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));  中跑。

现在还没有搞清楚,I2C需要怎么设置时钟。


I2C_24c02实验的更多相关文章

  1. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  2. Android中Activity的四大启动模式实验简述

    作为Android四大组件之一,Activity可以说是最基本也是最常见的组件,它提供了一个显示界面,从而实现与用户的交互,作为初学者,必须熟练掌握.今天我们就来通过实验演示,来帮助大家理解Activ ...

  3. SEED实验系列文章目录

    美国雪城大学SEEDLabs实验列表 SEEDLabs是一套完整的信息安全实验,涵盖本科信息安全教学中的大部分基本原理.项目组2002年由杜文亮教授创建,目前开发了30个实验,几百所大学已采用.实验楼 ...

  4. 物联网实验4 alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  5. (转)linux下和云端通讯的例程, ubuntu和openwrt实验成功(一)

    一.  HTTP请求的数据流总结#上传数据, yeelink的数据流如下POST /v1.0/device/4420/sensor/9089/datapoints HTTP/1.1Host: api. ...

  6. (原创) alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  7. 实验:Oracle直接拷贝物理存储文件迁移

    实验目的:Oracle直接拷贝物理文件迁移,生产库有类似施工需求,故在实验环境简单验证一下. 实验环境: A主机:192.168.1.200 Solaris10 + Oracle 11.2.0.1 B ...

  8. Oracle RAC 更换存储实验

    实验环境准备: RHEL 6.5 + Oracle 11.2.0.4 RAC (2nodes) OCR和Voting Disk使用的是OCR1磁盘组,底层对应3个1G大小的共享LUN,一般冗余: DA ...

  9. Vertica集群扩容实验过程记录

    需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...

随机推荐

  1. c# 如何获取系统管理员权限(UAC) 及判断当前是否是管理员权限

    环境说明: VS2012,windows 7  亲自验证过win7 和xp ,XP直接不弹框,因为XP没有UAC控制机制 步骤1: 右键项目-->属性-->安全性-->选中[启用Cl ...

  2. web uploader 上传大文件总结

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  3. BZOJ 3687: 简单题(dp+bitset)

    传送门 解题思路 设\(f(i)\)表示和为\(i\)时的方案数,那么转移方程为\(f(i)+=f(i-x)\),\(x\)为当前枚举到的数字,这样做是\(O(n\sum a_i)\)的,考虑优化.发 ...

  4. [CSP-S模拟测试]:v(hash表+期望DP)

    题目背景 $\frac{1}{4}$遇到了一道水题,又完全不会做,于是去请教小$D$.小$D$看了$0.607$眼就切掉了这题,嘲讽了$\frac{1}{4}$一番就离开了.于是,$\frac{1}{ ...

  5. [CSP-S模拟测试]:mine(DP)

    题目描述 有一个$1$维的扫雷游戏,每个格子用$*$表示有雷,用$0/1/2$表示无雷并且相邻格子中有$0/1/2$个雷.给定一个仅包含$?$.$*$.$0$.$1$.$2$的字符串$s$,问有多少种 ...

  6. Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 解决方法

    可以通过如下命令来解决,具体就是先关闭服务器,然后再重启服务器: cd /etc/init.d sudo service mysql stop sudo service mysql start

  7. 不同字符串,HashCode可能相同

    不同的字符串,hashcode可能相同. 先看例子: @Test public void test6(){ System.out.println("ABCDEa123abc".ha ...

  8. left、pixelLeft、posLeft的区别

    yexj00.style.pixelLeft=50yexj00.style.left=50pxyexj00.style.posLeft=50he.style.pixelLeft=39he.style. ...

  9. [题解]Magic Line-计算几何(2019牛客多校第三场H题)

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...

  10. 【设计模式】FactoryPattern工厂模式

    Factory Pattern 简单工厂模式 将变化的部分封装起来 //简单工厂 class SimpleProductFactory{ Product createProduct(String ty ...