首先在cubeide上配置spi,使用spi1,由于正点开发板上的nr24l01与ad7705正好相同,因此根据引脚配置PA1为DRDY,PC4为CS片选


根据手册上所写,配置寄存器初始化

uint8_t commue(uint8_t Dst_Addr)
{uint8_t RXdata;
HAL_SPI_TransmitReceive(&hspi1,&Dst_Addr,&RXdata,1, 1000);
return RXdata;
}
void Init_AD7705(void)
{
for(int i=0;i<150;i++)commue(0xff);//持续DIN高电平写操作,恢复AD7705接口
HAL_Delay(1);
commue(0x20); /* 选择时钟寄存器*/
HAL_Delay(1);
commue(0x0c); /* 配置时钟寄存器*/
HAL_Delay(1);
commue(0x10); /*选择设置寄存器*/
HAL_Delay(1);
commue(0x44);/*配置设置寄存器 */
}

读取通道一数据

uint16_t GetData7705_CH1(void)
{
uint16_t DataL = 0,DataH = 0;
HAL_Delay(1);
commue(0x38); //选中CH1数据寄存器读
while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==GPIO_PIN_SET){;}
////待数据准备好AdDrdy=0
delay_us(20);
DataH=commue(0xff);
DataL=commue(0xff);
delay_us(100);
DataH = DataH << 8;
return (DataH | DataL);
}

计算出电压值(mv)

float ADC_7705(void)
{
Init_AD7705();
float RCH1_16bit=GetData7705_CH1();
return (RCH1_16bit*5049.0/65535); //算出通道1电压
}

最新文章

  1. pyqt的信号槽机制(转)
  2. Swift的关键字
  3. Lind.DDD.Repositories.EF层介绍
  4. hadoop输入分片计算(Map Task个数的确定)
  5. Java数组与vector互转
  6. 【10_169】Majority Element
  7. 【Linux】基于Linux的buffer和cache学习
  8. 定位表的数据块并且dump出来
  9. Ant学习实例
  10. 两个容易被忽略的mysql知识
  11. [SQL基础教程] 1-5 表的删除和更新
  12. 分析下为什么spring 整合mybatis后为啥用不上session缓存
  13. iOS开发 - Swift使用JavaScriptCore与JS交互
  14. Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦
  15. Udacity并行计算课程笔记-The GPU Programming Model
  16. Python day 6(3) Python 函数式编程1
  17. html 常用button事件
  18. Java 原生网络编程.
  19. C#手动改变自制窗体的大小
  20. Mysql相关问题集锦

热门文章

  1. 4-20mA换算为实际值公式
  2. python3.7安装Anaconda3+tensorflow2.1中遇到的问题
  3. Android学习——控件ImageView
  4. srcrpy手机投屏软件
  5. plsql美化文件配置
  6. springcloud(八) - 分布式事务seata
  7. Razor视图cshtml做到运行时编译【提高开发效率】
  8. C语言学习记录(三)
  9. Java反射解析注解
  10. Abp框架使用Swgger注释加分组