打印
[其他ST产品]

STM32 控制MAX197读取不到数据

[复制链接]
181|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2024-8-21 17:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "max197.h"
#include "delay.h"
#include "usart.h"

void MAX197_Init()
{
//JTAG_Set(JTAG_SWD_DISABLE);        //必须关闭JTAG,有IO复用
RCC->APB2ENR|=1<<7;      //使能PA时钟
GPIOF->CRL&=0x00000000;
GPIOF->CRL|=0x33333333;
GPIOF->CRH&=0x00000fff;
GPIOF->CRH|=0x83333000;
GPIOF->ODR|=0x78ff;
}
//Channel:通道x, 0~7
u16 MAX197_Read(u8 Channel)
{
u16 temp;
MAX197_CS=0;

MAX197_WR=0;
MAX197_DATA(0x40|Channel);         //正常操作,内部时钟,0~5V,通道0
MAX197_CS=1;
MAX197_WR=1;
while(MAX197_INT);

//        GPIOA->CRL&=0x00000000;
//        GPIOA->CRL|=0x88888888;
PAL_IN();        //浮空输入也行,模拟输入不行

MAX197_CS=0;

MAX197_RD=0;
MAX197_HBEN=1; //读高四位
temp=GPIOF->IDR&0x0f;
temp<<=8;
MAX197_HBEN=0;  //读低八位
temp|=(GPIOF->IDR&0xff);

//        GPIOA->CRL&=0x00000000;
//        GPIOA->CRL|=0x33333333;
PAL_OUT();

MAX197_CS=1;

return temp;
}
double MAX197_GetVol(u8 Channel)         //读取10次求平均值
{
double vol;
u16 temp=0,i;
for(i=0;i<10;i++)
{
temp+=MAX197_Read(Channel);
}
vol=(double)temp/10.0/4095.0*5.0;
return vol;
}

#ifndef __MAX197_H
#define __MAX197_H

#include "sys.h"
#include "STM32f10x.h"
#define PAL_OUT() {GPIOF->CRL&=0x00000000;GPIOF->CRL|=0x33333333;}
#define PAL_IN()  {GPIOF->CRL&=0x00000000;GPIOF->CRL|=0x88888888;}

#define MAX197_DATA(x) GPIOF->ODR=(GPIOF->ODR&0Xff00)|(x&0x00ff)//PA低8位数据输出

#define MAX197_CS   PFout(11)
#define MAX197_WR   PFout(12)
#define MAX197_RD   PFout(13)
#define MAX197_HBEN PFout(14)
#define MAX197_INT  PFin(15)

void MAX197_Init(void);
u16 MAX197_Read(u8 Channel);
double MAX197_GetVol(u8 Channel);

//MAX197寄存器设置:
//      控制字格式:
//      D7(MSB)  D6     D5     D4     D3      D2     D1     D0(LSB)
//        PD1    PD0  ACQMOD   RNG    BIP     A2     A1     A0                 
//      控制字说明:
//          PD1,PD0 ----- 选择时钟和掉电模式
//           ACQMOD ----- 0:内部获取模式;1:外部获取模式
//              RNG ----- 选择满幅输入电压
//              BIP ----- 选择输入极性
//         A2,A1,A0 ----- 选择输入通道
//                           
//          PD1,PD0 ----- 00:一般模式/外部时钟
//                        01:一般模式/内部时钟
//                        10:Standby Power-Down/时钟不受影响
//                        11:Full Power-Down (FULLPD)/时钟不受影响
//                                               
//          RNG,BIP ----- 00: 0V ~  +5V
//                        01:-5V ~  +5V
//                        10: 0V ~ +10V
//                        11:-10V~ +10V
//                                                
//         A2,A1,A0 ----- 000:CH0
//                        001:CH1
//                        010:CH2
//                        011:CH3
//                        100:CH4
//                        101:CH5
//                        110:CH6
//                        111:CH7      
//*******************************************
#endif
谁能帮我看一下?为什么完全读不到数据?

使用特权

评论回复
沙发
y1n9an| | 2024-8-31 20:45 | 只看该作者
STM32控制MAX197读取不到数据可能由多种原因造成。MAX197是一款8通道、12位模拟-数字转换器(ADC),通常用于工业应用中进行高精度数据采集

使用特权

评论回复
板凳
b5z1giu| | 2024-8-31 20:59 | 只看该作者
MAX197的电源电压不稳定或不正确可能会引起这个现象,一般情况是电源线路上存在噪声或干扰

使用特权

评论回复
地板
发给她更好fh| | 2024-8-31 21:17 | 只看该作者
检查 SCLK、MISO、MOSI 和 CS线是否连接正确。

使用特权

评论回复
5
cen9ce| | 2024-8-31 21:21 | 只看该作者
硬件连接问题,MAX197与STM32之间的连接线松动或断开。信号线(如数据线、控制线)连接错误。地线连接不良,导致地回路噪声

使用特权

评论回复
6
d1ng2x| | 2024-8-31 21:44 | 只看该作者
配置错误,MAX197的控制寄存器配置不正确,导致ADC无法启动或选择错误的通道。STM32的GPIO配置错误,导致无法正确发送控制信号或读取数据

使用特权

评论回复
7
kaif2n9j| | 2024-8-31 22:02 | 只看该作者
时序问题,控制信号的时序不正确,导致MAX197无法识别或响应STM32的命令。数据读取的时序不匹配,导致读取的数据不正确或丢失

使用特权

评论回复
8
lix1yr| | 2024-8-31 22:33 | 只看该作者
软件代码问题吧,比如STM32的固件代码中存在错误,导致无法正确控制MAX197或读取数据。中断处理或DMA传输配置不正确,导致数据丢失或读取失败

使用特权

评论回复
9
liu96jp| | 2024-8-31 22:56 | 只看该作者
ADC故障也有可能哦,MAX197芯片本身可能存在故障或损坏

使用特权

评论回复
10
q1d0mnx| | 2024-8-31 23:03 | 只看该作者
参考电压对不对?如果MAX197的参考电压不稳定或不正确,导致ADC转换结果不准确

使用特权

评论回复
11
tax2r6c| | 2024-8-31 23:23 | 只看该作者
我这边建议检查电源电压和线路,确保MAX197和STM32的电源稳定且无噪声。检查硬件连接,确保所有信号线和地线连接正确且牢固

使用特权

评论回复
12
suw12q| | 2024-8-31 23:44 | 只看该作者
可以仔细检查一下MAX197的配置寄存器和STM32的GPIO配置,确保配置正确

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

609

主题

2245

帖子

0

粉丝