请大神们看看我写的代码有什么问题
#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,有数据但是完全是错的
此帖出自
小平头技术问答
HBEN=0;读低八位
HBEN=1;读高四位
一周热门 更多>