历史上的今天
返回首页

历史上的今天

今天是:2025年08月14日(星期四)

正在发生

2019年08月14日 | STM32学习记录之cubemx配置IIC+逻辑分析仪的学习

2019-08-14 来源:eefocus

首先

这里用的开发板是原子的STM32F429,就是通过CUBEMX配置IIC的总线,话不多说,上图

在这里插入图片描述

因为原子429的板子的IIC的数据线和时钟线是PH4和PH5,而I2C2的默认并不是这个引脚,大家要根据手上实际的电路图来呀。

在这里插入图片描述
在这里插入图片描述

这些都是初始化配置,没有需要修改的,就这样默认就好了,至于系统时钟的配置,选用的是外部时钟,只要不超出范围就好了。然后就是生成工程。

下面是主要的程序


#define ADDR_AT24C02_Write 0xA0

#define ADDR_AT24C02_Read 0xA1


uint8_t I2C_Buffer_Write[64];

uint8_t I2C_Buffer_Read[64];

uint16_t i=0;

  printf("rn rn*********STM32CubeMX I2C AT24C02 Example*********rn");

  printf("rn I2C Write Buffer:rn");

  for(i=0; i<64; i++)

  {

  I2C_Buffer_Write[i]=i;    /* WriteBuffer Initialization */

  printf("%02X ", I2C_Buffer_Write[i]);


  }


  /* write data to AT24C02 */ 

  for(i=0; i<64; i=i+8)

  {

if (HAL_I2C_Mem_Write(&hi2c2, ADDR_AT24C02_Write, i, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer_Write[i]),8, 1000) == HAL_OK)

{

  printf("rn Byte %02d to Byte %02d Write OK",i,i+8);

  HAL_Delay(5);//写完以后需要延时5ms,这个不能少

  }

  else

{

HAL_Delay(5);

if( HAL_I2C_Mem_Write(&hi2c2, ADDR_AT24C02_Write, i, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer_Write[i]),8,1000) == HAL_OK)

{

printf("rn Byte %02d to Byte %02d Write OK",i,i+8);

HAL_Delay(5);//写完以后需要延时5ms,这个不能少

}

else  printf("rn Byte %02d to Byte %02d Write Failed",i,i+8);

    }

}

  /* read data from EEPROM */

printf("rn Reading from AT24C02:rn");

HAL_I2C_Mem_Read(&hi2c2, ADDR_AT24C02_Read, 0, I2C_MEMADD_SIZE_8BIT,I2C_Buffer_Read,64, 1000);

 

for(i=0; i<64; i++)

{

printf("0x%02X  ",I2C_Buffer_Read[i]);

}

if(memcmp(I2C_Buffer_Read,I2C_Buffer_Write,256) == 0 ) /* check data */

      printf("rn AT24C02 Read Test OKrn");

else

      printf("rn AT24C02 Read Test Failedrn");


由于我在这里是用串口输出的结果,程序里面实现的是页写入,因为EEPROM的写入是有限制的,但是读取是没有限制的,所以就全部读取出来。

在这里插入图片描述

这个是串口输出的结果。之前在CSDN上的博客看到一些说CUBE配置的IIC有一些BUG,不过目前来说并没有遇到,可能是我实现的功能简单。只要引脚配置没问题就好,下面是逻辑分析仪,刚开始接触逻辑分析仪,听说这个是搞电子的吃饭的家伙。

一开始的时候不会用,在接上芯片引脚之后,只会显示时序图,还傻乎乎的拿着24C02的芯片手册一个个数,真是蠢到家了。

在这里插入图片描述

在这里可以设置,

选择两个不同的信道,接上逻辑分析仪

在这里插入图片描述

推荐阅读

史海拾趣

歌尔(Goertek)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的关键设备,其专业性与科普性兼具。从广义上讲,机顶盒泛指一切与电视机连接的网络终端设备,能够接收并转换多种信号源,包括有线电缆、卫星天线、宽带网络及地面广播等,为观众提供丰富多样的视听体验。

在数字电视时代,机顶盒的核心功能在于实现数模转换,即将接收到的数字信号转换为电视机可识别的模拟信号,从而使用户能在模拟电视机上观看高清甚至超高清的数字电视节目。此外,机顶盒还具备强大的增值服务功能,如提供电子节目指南、因特网网页浏览、在线购物、视频点播等,使电视机从单向接收信息的设备转变为互动的智能终端。

随着技术的不断进步,机顶盒正朝着高清化、智能化方向发展。高清、超高清技术的广泛应用,使得机顶盒能够呈现更为细腻的画面和震撼的音效。同时,智能化技术的融入,如语音助手、智能推荐等功能的实现,进一步提升了用户的使用体验。未来,随着5G、虚拟现实和增强现实等技术的不断发展,机顶盒的应用场景将更加广泛,为用户带来更为沉浸式和互动式的观影体验。

综上所述,机顶盒作为连接电视与外部世界的桥梁,不仅丰富了人们的视听生活,更推动了电视产业的数字化转型与发展。

Crameda Intersys公司的发展小趣事

Crameda Intersys公司自创立之初,便以技术创新为核心竞争力。在公司成立早期,团队经过长时间的研发,成功推出了一款具有颠覆性的集成电路产品,其高效能和低能耗的特点在当时市场上独树一帜。这一技术突破不仅为公司赢得了大量的订单,也为公司的长远发展奠定了坚实基础。随着产品市场的逐步拓展,公司的知名度和影响力不断提升,为后续的技术研发和市场拓展积累了宝贵的经验和资源。

DDK公司的发展小趣事

DDK公司在发展过程中,始终牢记社会责任,积极履行企业公民的义务。公司积极参与公益事业,关注环境保护和社会发展,为社会做出了积极贡献。同时,DDK公司还积极推动行业健康发展,与同行企业共同维护市场秩序和公平竞争环境。这种社会责任的担当,让DDK公司在电子行业中树立了良好的企业形象。

AZ Displays公司的发展小趣事

AZ Displays深知品质是企业生存的根本。因此,公司始终将质量控制放在首位,从原材料采购到生产工艺的每一个环节都进行严格把控。通过严格的质量管理体系和高效的供应链管理,AZ Displays的产品质量得到了客户的高度认可,逐渐在行业内建立了卓越的声誉。

Hanghsing Enterprise Co Ltd公司的发展小趣事

面对日益激烈的市场竞争和不断变化的客户需求,AZ Displays始终保持着创新的活力。公司不断投入研发资源,推出具有创新性和领先性的产品。同时,AZ Displays还积极关注行业动态和新兴技术,不断调整和优化产品策略,以确保公司在市场中的领先地位。

这些故事展示了AZ Displays在电子行业中的发展历程和成就,体现了公司不断创新、追求卓越的精神。未来,随着科技的不断进步和市场需求的不断变化,AZ Displays将继续保持创新活力,为客户提供更优质的产品和服务。

Centellax Inc公司的发展小趣事

Centellax深知人才是公司发展的核心动力。因此,公司一直致力于打造一支高素质、专业化的团队。通过招聘优秀的研发、销售、管理等人才,为公司的长期发展提供有力的人才保障。

在团队建设方面,Centellax注重培养员工的团队协作精神和创新能力。通过定期举办团队建设活动、培训课程等,提升员工的凝聚力和归属感。同时,公司还鼓励员工积极参与创新项目,为公司的技术进步和业务发展贡献智慧和力量。

问答坊 | AI 解惑

青越锋PCB软件——快捷键教程

在进行连接线的过程中, 按住W键可进行线宽的设置; 按住L键可进行层的切换 当选择一根strack时,按住F5即可选中整个管脚对;     按住F6可选择整个net网络;     按住Q键进行单位切换; Esc:终止 ...…

查看全部问答>

Windows驱动难题请教,如何让UI层响应设备插入的事件

我给一个USB设备写了个驱动程序 这个设备每次在插入的时候,都需要在UI层进行一系列的配置工作,然后才能开始工作 考虑如果使用Coinstaller,只能在第一次安装的时候起作用,以后再插入就不行了 也不能使用服务或者其他随系统启动运行的扫描进程 ...…

查看全部问答>

推荐好用得 Linux

最过从朋友那里得到了一个非常好用的LINUX  ----AndLinux 其与Ubuntu Linux 是一个系列, 其最大的优点是:可以像普通软件一样,在Windows 下安装, 且所有的Linux软件都可以安装使用. 具体请看 http://baike.baidu.com/view/142446 ...…

查看全部问答>

关于6N137光耦输出的问题

今天想做一个步进电机的东东,用了6N137光耦作为驱动器的脉冲信号输入。但是不管程序怎么写电机就是不转。 后来用万用表测了一下,发现6N137光耦的输入断也就是接单片机I/O的脚是有脉冲电平的,但是光耦的输出脚Vo始终是高电平,始终不懂。难怪电 ...…

查看全部问答>

ARM嵌入式QQ群收集

收集一些群,给大家玩玩。我一般晚上回去群聊。 花江群 39063007——主要是wince的,单片机啥都有。 珠海电子工程师群 92580412 ——里面有一些骨灰级工程师,偏向硬件。 桂电科协群32986294——里面有部分是学生,但是也蛮多深圳,广州的工程师 ...…

查看全部问答>

关于闩锁问题

很多32位CPU在电源缓慢上升时会出现闩锁现象,即进入此状态后,即使给芯片复位信号,芯片也不能启动,除非掉电再重新上电。STR71X会不会也有这样的问题呢?如果有此问题,有没有推荐的简单可靠电路解决此问题?…

查看全部问答>

求教,,,关于传感器测高度

请教一下各位高手,,我想用传感器测量一个物体的高度(比如说水杯,,水壶之类的)要求是不受物体的限制,当然高度也会有一个范围。也就是说,当物体往那里一放,就能测出它的高度,,用什么传感器好呢???? 还有,测量液面的高度用超声波传 ...…

查看全部问答>

怎样使电压稳定

电阻分压后输出的电压有大概0.001V左右的变化,有什么办法能使电压稳定?…

查看全部问答>

my9221

有谁用过MY9221的,第一张图的DCKO - DI是什么意思,还有第三个图我也看不太懂,求大神指教啊,初学者还是看不懂时序图啊T T 图看不清的麻烦下附件帮我看一下,万分感激!!…

查看全部问答>