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,有数据但是完全是错的
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。