金牌会员
 
- 积分
- 2099
- 金钱
- 2099
- 注册时间
- 2017-2-11
- 在线时间
- 306 小时
|

楼主 |
发表于 2020-10-16 12:27:41
|
显示全部楼层
本帖最后由 jiangyy 于 2020-10-16 12:29 编辑
/*ad5254.c*/
/*ad5254.h*/
- #ifndef __AD5254_H
- #define __AD5254_H
- #include "sys.h"
- //IO方向设置
- #define PD_SDA_IN() {PD_IIC_DIR=0;GPIOB->MODER&=~(3<<(10*2));GPIOB->MODER|=0<<10*2;} //PB10输入模式
- #define PD_SDA_OUT() {PD_IIC_DIR=1;GPIOB->MODER&=~(3<<(10*2));GPIOB->MODER|=1<<10*2;} //PB10输出模式
- //IO操作函数
- #define PD_IIC_DIR PBout(2) //DIR 1:A -> B
- #define PD_IIC_SCL PBout(11) //SCL
- #define PD_IIC_SDA PBout(10) //SDA
- #define PD_READ_SDA PBin(10) //输入SDA
- #define AD5254_1_Wadress 0x58
- #define AD5254_1_Radress 0x59
- #define AD5254_2_Wadress 0x5c
- #define AD5254_2_Radress 0x5d
- #define RDAC0 0x00
- #define RDAC1 0x01
- #define RDAC2 0x02
- #define RDAC3 0x03
- //IIC所有操作函数
- void AD5254_Init(void); //初始化IIC的IO口
- void PD_IIC_Start(void); //发送IIC开始信号
- void PD_IIC_Stop(void); //发送IIC停止信号
- void PD_IIC_Send_Byte(u8 txd); //IIC发送一个字节
- u8 PD_IIC_Read_Byte(u8 ack); //IIC读取一个字节
- u8 PD_IIC_Wait_Ack(void); //IIC等待ACK信号
- void PD_IIC_Ack(void); //IIC发送ACK信号
- void PD_IIC_NAck(void); //IIC不发送ACK信号
- void PD_IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
- u8 PD_IIC_Read_One_Byte(u8 daddr,u8 addr);
- void AD5254_1_WriteOneByte(u8 WriteAddr,u8 DataToWrite);
- u8 AD5254_1_ReadOneByte(u8 ReadAddr);
- void AD5254_2_WriteOneByte(u8 WriteAddr,u8 DataToWrite);
- u8 AD5254_2_ReadOneByte(u8 ReadAddr);
- #endif
复制代码
|
|