社区导航

 
查看: 299|回复: 0

[原创] 新驱动力MM32F103测试(八)I2C

[复制链接]

649

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-11-4 20:56:25 | 显示全部楼层 |阅读模式
      今天学习了例程中I2C模块的使用,手里一时没有找到现成可用的AT24Cxx模块,最后找到一个之前用洞洞板做的PCF8574T模块,就用它了。
一、实验资源
1、MM32F103开发板;
2、KEIL 5.25.2;
3、J-LINK V9;
4、新驱动力提供的开发例程;
5、PCF8574T + 8位发光LED;



二、实验过程
1、例程中可以看到配置函数将MCU的I2C1重映射至PB8、PB9引脚;
QQ截图20181104174820.png

2、硬件连接。如下图:
IMG_20181104_202830.jpg
IMG_20181104_202921.jpg
IMG_20181104_202949.jpg

3、程序实现
      在主程序中定义一个数组,在for循环中将数组数据顺序写入PCF8574T,在PCF8574T的输出端口P[8:0]接有8位发光LED,按1秒间隔由低位向高位依次点亮。由于这个8位LED模块是共阳接法,为便于观察将数组取反了。
  1. int main(void)
  2. {
  3.         unsigned char j;
  4.         unsigned char tx_buffer0[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  5.        
  6.         delay_init();                                    
  7.         I2CInitMasterMode(I2C1, 100000);
  8.         I2CSetDeviceAddr(I2C1, FLASH_DEVICE_ADDR); //PCF8574T地址为0X40  
  9.    
  10.         while(1)                                             
  11.         {
  12.                 for(j=0; j<8; j++)
  13.                 {
  14.                         I2CTXByte(I2C1,~tx_buffer0[j]);
  15.                         delay_ms(1000);
  16.                 }
  17.         }
  18. }
复制代码



4、实验现象。如下图:
IMG_20181104_203200.jpg

三、实验总结
      实验过程中感觉官方所提供的例程非常好用,各子函数写得也非常简洁,易理解、易上手。遗憾的是只做了I2C“写”操作而没有操作
“读”,后面还要进一步尝试。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-18 16:15 , Processed in 0.059454 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表