有谁弄过硬件IIC吗?

关注

单片机 STM32 e426e7b5528e31c9    2018-07-10   |   浏览量 102  
最近测试FDC2214,用IIC测试中。。。

最佳答案

  • chen0000009 发表于2018-07-10

    STM32硬件I2C本身是没有问题的,只是库有问题,用新库进行操作或者用寄存器就没有这个问题

    举报 评论 0

其他答案

  • fighter-12315 发表于 2018-07-10

    用前年的LDC程序测试完美通过呀,IIC时序是一样的,只不过FDC的寄存器读写时序要根据手册来写俩函数,可以根据原子的EEPROM程序修改,不难,可以先测试读器件ID

    举报 评论 0

  • a4c022bac1fe9697 发表于 2018-07-11

    软件IIC吧,硬件出故障了不好调试!

    举报 评论 0

  • 6d38f182c018e11e 发表于 2018-07-11

    硬件没弄过,怕不好弄,建议软件IIC

    举报 评论 0

  • lichangle 发表于 2018-07-11

    有高速模式跟普通模式 一般低速iic 用普通模式就行 硬件iic 完全没有问题

    举报 评论 0

  • 明有几时有 发表于 2018-07-11

    现在使用HAL库的硬件IIC没有问题,标准库的好像是不行

    举报 评论 0

  • 捷波 发表于 2018-07-11

    硬件IIC配置好相关寄存器就好了,相比软件IIC应该更稳定。下面是FDC2X14的测试代码,供参考.


    //
    // FDC2x1x hardware configuration:
    // Component value as in default circuit form datasheet. (18uH inductor and 33pF cap)
    //
    // SD and ADDR pins tied to GND
    // INTB pin not used
    //
    // ARDUINO <--> FDC
    // A4 <-------> SDA
    // A5 <-------> SCL
    //
    // !!!!!! Arduinos are mostly 5V. FDC chips are 3.3V so either use 3.3V version of Arduino like pro mini or use level shifter on I2C bus.
    //

    // ### FDC
    #include <Wire.h>
    #include "FDC2214.h"
    FDC2214 capsense(FDC2214_I2C_ADDR_0); // Use FDC2214_I2C_ADDR_1

    // ###
    void setup() {
     
      // ### Start I2C
      Wire.begin();
    //  Wire.setClock(400000L);
     
      // ### Start serial
      Serial.begin(115200);
      Serial.println("\nFDC2x1x test");
     
      // ### Start FDC
      // Start FDC2212 with 2 channels init
      bool capOk = capsense.begin(0x3 0x4 0x5); //setup first two channels autoscan with 2 channels deglitch at 10MHz
      // Start FDC2214 with 4 channels init
      //bool capOk = capsense.begin(0xF 0x4 0x5); //setup all four channels autoscan with 2 channels deglitch at 10MHz
      if (capOk) Serial.println("Sensor OK"); 
      else Serial.println("Sensor Fail"); 

    }

    // ### Tell aplication how many chanels will be smapled in main loop
    #define CHAN_COUNT 2

    // ###
    void loop() {
      unsigned long capa[CHAN_COUNT]; // variable to store data from FDC
      for (int i = 0; i < CHAN_COUNT; i++){ // for each channel
        // ### read 28bit data
        capa[i]= capsense.getReading28(i);// 
        // ### Transmit data to serial in simple format readable by SerialPlot application.
        Serial.print(capa[i]); 
        if (i < CHAN_COUNT-1) Serial.print(" ");
        else Serial.println("");
      }
      // No point in sleeping
      //delay(100);
    }

    举报 评论 0

  • 一笔之名也 发表于 2018-07-11

    硬件的IIC是有bug的,建议直接使用GPIO进行模拟

    举报 评论 0

  • hehung 发表于 2018-07-12

    硬件IIC需要配饰相关的IIC寄存器,如果使用库函数的话,需要调用相关的库函数

    举报 评论 0

  • megar 发表于 2018-07-14

    一般有硬件IIC就先用这个,它相比于软件模拟快多了,如果这款芯片本身有缺陷或者库比较烂,那还不如自己模拟,先看看网上有没有大神填过坑!

    举报 评论 0

  • 勇哥来巡山 发表于 2018-07-21

    硬件IIC要你的硬件有IIC模块,然后找到这个模块的资料进行对照学习

    举报 评论 0

  • 菜鸟冷虎 发表于 2018-07-24

    这个还没做过,主要是资料比较少,上手比较难

    举报 评论 0

  • drepa 发表于 2018-07-30

    硬件iic不太好用,还是先用模拟iic调通吧。

    举报 评论 0

我来回答

试用推荐

深创客NBiot物联网低功耗开发板STM32L476

产品总数:5个  申请人数:122

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
回答问题攒积分送开发板