MSP430系列单片机:PCA9685驱动多足机器人

本文介绍了使用MSP430F5438A单片机通过PCA9685驱动多足机器人的过程,涉及到IIC通讯协议和PWM方波输出。作者分享了遇到的挑战和解决方案,提供了IIC协议头文件、PCA9685驱动函数及主函数的相关代码。
摘要由CSDN通过智能技术生成

多足机器人,是我大二暑假和大三开始玩的东西,刚好大四暑假留校又接触了MSP430,就想着把原来写的的代码也放到这里

控制多组舵机驱动机器人动作,用MSP430F5438A当主控器,PCA9685当驱动输出PWM方波的发生器,那下子驱动方式弄的我脑壳疼的哟,想想也是好笑。、

emmmm….PCA9685的手册好像没有中文,那下子也是看的脑袋大,好像这里有以前写的驱动原理,写完的就忘更新了….暑假就拿来看怎么驱动了。只记得个大概,IIC通讯协议方式通讯,先发送驱动器的物理地址确认是这个驱动器,得到应答后再开始发送数据,数据用数值形式发送到每个PWM方波输出口,一共可发送16路PWM方波。附上驱动代码。

IIC协议头文件

#ifndef _IIC_H_
#define _IIC_H_

#include "msp430.h"

typedef unsigned int uint;
typedef unsigned char uchar;

//引脚
#define IIC_SDA_PIN   (BIT0)
#define IIC_SCL_PIN   (BIT1)

//位宏
#define READ_SDA()      P2IN&BIT0

#define IIC_SDA_LO         P2OUT&=~BIT1
#define IIC_SDA_HI         P2OUT|=BIT1

#define IIC_SCL_LO         P2OUT&=~BIT3
#define IIC_SCL_HI         P2OUT|=BIT3

//SDA设置为输出输入
#define SDA_OUT()  P2DIR|=BIT1  
#define SDA_IN()   P2DIR&=~BIT1

//SCL设置为输出输入
#define SCL_OUT()  P2DIR|=BIT3
#define SCL_IN()   P2DIR&=~BIT3

//本构件所实现的函数列表
void IIC_Init(void);
void IIC_Start(void);
void IIC_Stop(void);
void IIC_NAck(void);
void IIC_Ack(void);
void IIC_SendByte(uint dat);
uchar IIC_ReadByte(uchar ack);
uchar I2C_ReadByte(uchar DiviceID ,uchar address);
void I2C_WriteByte(uchar  ,uchar address,uchar );
void I2C_ReadNByte(uchar
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值