STM32与MAX 197

2019-03-23 18:30发布

请大神们看看我写的代码有什么问题
#define PAL_OUT() {GPIO_Set(GPIOA,PIN0|PIN1|PIN2|PIN3|PIN4|PIN5|PIN6|PIN7,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);}
#define PAL_IN()  {GPIO_Set(GPIOA,PIN0|PIN1|PIN2|PIN3|PIN4|PIN5|PIN6|PIN7,GPIO_MODE_IN,0,0,GPIO_PUPD_PU);}
#define MAX197_DATA(x) GPIOA->ODR=(GPIOA->ODR&0Xff00)|(x&0x00ff)//PAµÍ8λÊý¾ÝÊä³ö
#define MAX197_CS   PAout(11)
#define MAX197_WR   PAout(12)
#define MAX197_RD   PAout(13)
#define MAX197_HBEN PAout(14)
#define MAX197_INT  PAin(15)
u16 MAX197_Read(u8 Channel)
{
u16 temp1,temp2;
u16 temp;
PAL_OUT();
MAX197_CS=0;
MAX197_WR=0;
delay_us(1);
MAX197_DATA(0x58|Channel);  //Õý³£²Ù×÷£¬ÄÚ²¿Ê±ÖÓ£¬0~5V,ͨµÀ0
delay_us(1);
MAX197_WR=1;
while(MAX197_INT);
PAL_IN();        //¸¡¿ÕÊäÈëÒ²ÐУ¬Ä£ÄâÊäÈë²»ÐÐ
MAX197_RD=0;
MAX197_HBEN=0;  //¶ÁµÍ°Ëλ
temp1=(GPIOA->IDR&0xff);
MAX197_HBEN=1;
temp2=(GPIOA->IDR&0x0f)<<8;
MAX197_HBEN=0;
MAX197_RD=1;
temp=temp1+temp2;
MAX197_CS=1;
return temp;
}
我用STM32F407写的,系统主频168M,有数据但是完全是错的
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
weizhongc
1楼-- · 2019-03-23 21:12
/ 是不是高低位弄错了
hnsdyd
2楼-- · 2019-03-24 01:33
weizhongc 发表于 2015-8-3 16:36
是不是高低位弄错了

什么意思
weizhongc
3楼-- · 2019-03-24 03:51
 精彩回答 2  元偷偷看……
hnsdyd
4楼-- · 2019-03-24 09:29
weizhongc 发表于 2015-8-3 22:20
高四位,跟第八位,你是不是设置错误啊。你仔细看下文档吧

HBEN=0;读低八位
HBEN=1;读高四位

一周热门 更多>