8路磁导航传感器IO端口检测

2019-08-19 20:29发布

1、主程序
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
//#include "beep.h"
#include "key.h"
#include "exti.h"
//#include "iwdg.h"
//#include "pwm.h"
#include "magnetic.h"
#include "stdio.h"
#include "timer.h"

extern int a[9];
int main(void)
{
        delay_init(168);                //延时初始化
        uart_init(115200);        //串口初始化波特率为115200
        magnetic_IO_Init();
        SystemInit();
        while(1)
        {
                if(SW1==0)
                {printf(" SW1==%d: ",SW1);
                delay_ms(100);}
                        if(SW2==0)
                        {printf(" SW2==%d: ",SW2);
                        delay_ms(100);}
                                if(SW3==0)
                                {printf(" SW3==%d: ",SW3);
                                delay_ms(100);}
                                        if(SW4==0)
                                        {printf(" SW4==%d: ",SW4);
                                        delay_ms(100);}
                                                if(SW5==0)
                                                {printf(" SW5==%d: ",SW5);
                                                delay_ms(100);}
                                                        if(SW6==0)
                                                        {printf(" SW6==%d: ",SW6);
                                                        delay_ms(100);}
                                                                if(SW7==0)
                                                                        {printf(" SW7==%d: ",SW7);
                                                                        delay_ms(100);}
                                                                                if(SW8==0)
                                                                                        {printf(" SW8==%d: ",SW8);
                                                                                        delay_ms(100);}
               
        }
}
2、磁导航端口配置
#ifndef __MAGNETIC_H
#define __MAGNETIC_H
#include "sys.h"



//位带操作 读取磁导航IO口数据
#define SW1 PBin(1)
#define SW2 PAin(4)
#define SW3 PCin(5)
#define SW4 PAin(12)
#define SW5 PAin(11)
#define SW6 PAin(6)
#define SW7 PCin(4)
#define SW8 PCin(1)


//初始化
void magnetic_IO_Init(void);
//float magnetic_Init(float p);

#endif

#include "magnetic.h"
#include "stm32f4xx_rcc.h"
#include "delay.h"
//磁导航传感器端口初始化函数
void magnetic_IO_Init(void)
{
        GPIO_InitTypeDef GPIO_Initstruct;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC,ENABLE);
        //GPIOA-4 6 11 12 端口初始化
       
        GPIO_Initstruct.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_11|GPIO_Pin_12;
        GPIO_Initstruct.GPIO_Mode=GPIO_Mode_IN;
        GPIO_Initstruct.GPIO_PuPd=GPIO_PuPd_UP;
        GPIO_Initstruct.GPIO_Speed=GPIO_Speed_100MHz;
       
        GPIO_Init(GPIOA,&GPIO_Initstruct);
        //GPIOB-1 端口初始化
        GPIO_Initstruct.GPIO_Pin=GPIO_Pin_1;
        GPIO_Initstruct.GPIO_Mode=GPIO_Mode_IN;
        GPIO_Initstruct.GPIO_PuPd=GPIO_PuPd_UP;
        GPIO_Initstruct.GPIO_Speed=GPIO_Speed_100MHz;
       
        GPIO_Init(GPIOB,&GPIO_Initstruct);
       
        //GPIOC-1 4 5 端口初始化
        GPIO_Initstruct.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5;
        GPIO_Initstruct.GPIO_Mode=GPIO_Mode_IN;
        GPIO_Initstruct.GPIO_PuPd=GPIO_PuPd_UP;
        GPIO_Initstruct.GPIO_Speed=GPIO_Speed_100MHz;
       
        GPIO_Init(GPIOC,&GPIO_Initstruct);

}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。