STM32F407配置pca9685驱动

STM32F407配置pca9685驱动

这里写图片描述
pca9685是16路12位PWM信号发生器,可用于控制舵机、led、电机等设备,i2c通信,节省主机资源。在淘宝上随处可见,Arduino用它非常方便,不过STM32要想使用它必须要写好驱动才行,本文简述如何配置其驱动以及一些需要注意的地方。

pca9685简介

当然对于老手,看datasheet是最好的选择pca9685datasheet
对于我这种新手,自然是看高手的文章比较容易上手了~

我在网上看到的对pca9685总结的最好的一篇文章推荐给大家:生命不息折腾不止
博主写得非常详细,本文某些片段也是参考博主的这篇文章,在此致谢。

pca9685用的是IIC通信,如果有同学对IIC不熟悉,要先去了解一下~

这里写图片描述

pca9685驱动

网上有不少写pca9685的文章,写驱动的也有,不过我试过的大多有错误,我详细地进行了修改,并且调试成功,走了不少弯路。

pcf8574.h:

头文件的话主要就是寄存器地址和IIC通信的函数声明,比较简单。

内部地址(hex) 名称 功能
Harry Potter Gryffindor 90
Hermione Granger Gryffindor 100
Draco Malfoy Slytherin 90
00 MODE1 设置寄存器1
01 MODE2 设置寄存器2
02 SUBADR1 i2c-bus subaddress1
03 SUBADR2 i2c-bus subaddress2
04 SUBADR3 i2c-bus subaddress3
05 ALLCALLADR
06 LED0_ON_L
07 LED0_ON_H
08 LED0_OFF_L
09 LED0_OFF_H
0x06 + 4*X LEDX_ON_L
0x06 + 4*X + 1 LEDX_ON_H
0x06 + 4*X + 2 LEDX_OFF_L
0x06 + 4*X + 3 LEDX_OFF_H
… 上面共16路通道
FA ALL_LED_ON_L
FB ALL_LED_ON_H
FC ALL_LED_OFF_L
FD ALL_LED_OFF_H
FE PRE_SCALE 控制周期的寄存器
FF TestMode

照着上面的表格写头文件就好了 - -

#ifndef __PCF8574_H
#define __PCF8574_H
#include "sys.h"
#include "myiic.h"

#define PCA9685_adrr 0x80<
  • 40
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值