[STM32MP1] 【STM32MP135F-DK测评】+裸机驱动MCP23017T点灯

[复制链接]
891|1
 楼主| wuxiubo 发表于 2024-1-26 17:29 | 显示全部楼层 |阅读模式

4592c199ee5d76daa6eabb854c915df6
首先就是要看这个芯片的数据手册了,其有两种寄存器配置方式,默认是BANK0,默认的话有个好处可以一次配置两个他寄存器可以顺着往下的。
43291665190537a8171a65ad1d800e86
也就是这里介绍的字节和顺序模式。
1e846d204d4bd6e3bf0c5389235957d2
先要配置IO口成输出模式。
06decdae04f67c9efa759c143d266c51
  1. temp[0] = 0x00;

  2. temp[1] = 0x00;

  3. HAL_I2C_Mem_Write(&hi2c1, 0x42, 0x00, I2C_MEMADD_SIZE_8BIT, temp, 2, 0xff);
0x42是其地址,可以看手册得到,0x00是寄存器地址,我们写了两个所有两个口都变成了输出模式。
  1. temp[0] = 0xff;

  2. temp[1] = 0x00;

  3. HAL_I2C_Mem_Write(&hi2c1, 0x42, 0x12, I2C_MEMADD_SIZE_8BIT, temp, 2, 0xff);

  4. HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_13);

  5. HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_14);

  6. HAL_Delay(500);

  7. temp[0] = 0xff;

  8. temp[1] = 0xff;

  9. HAL_I2C_Mem_Write(&hi2c1, 0x42, 0x12, I2C_MEMADD_SIZE_8BIT, temp, 2, 0xff);

  10. HAL_Delay(500);

然后就是主循环操作了,我们操作整个口省事点。
1ba89d027a10f5093ad0c5bcac9ce75c
硬件连接。我们用的是GPB6,和GPB7。两个灯。
f2caeba99beeacd955b74e8d989961a3
IIC直接用CUBEMX生成即可。完成即可点灯。
fbcc8344e2514037e58b4a3dbe4d402d

xuanhuanzi 发表于 2024-1-26 22:39 | 显示全部楼层
高级用法啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

259

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部