//Author:"淚與汗的纏綿"//Data:2011-11月
本文引用地址:http://m.butianyuan.cn/article/201611/321625.htm//功能:NPN、PNP的識(shí)別程序
#include "yf_tft.h"
void GPIO_Configuration(void);
void Delayms(u16 t);
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
ili9320_Initializtion(); //端口引腳初始化
ili9320_Delay(800000);
while(1)
{
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_RESET);
Delayms(1000);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
{
LCD_showzifustr(10,10,"PNP",Blue,Yellow);
GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);
Delayms(1000);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
{
LCD_showzifustr(10,30,"PNP:CBE",Blue,Yellow);
}
else
LCD_showzifustr(10,30,"PNP:EBC",Blue,Yellow);
}
else
{LCD_showzifustr(10,10,"NPN",Blue,Yellow);
GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);
LCD_showzifustr(20,50,"A1R A2R A3S A7S A5S",Blue,Yellow);
Delayms(1000);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
{
LCD_showzifustr(10,30,"NPN:CBE",Blue,Yellow);
}
else
LCD_showzifustr(10,30,"NPN:EBC",Blue,Yellow);
}
}
}
void RCC_Configuration(void)
{
SystemInit () ;//很重要?。。?!
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD
|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO, ENABLE);
}
void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_7|GPIO_Pin_5;//IO端口的第4位
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;//端口模式為模擬輸入方式
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void Delayms(u16 t)// Delay Time about 1 ms;
{
u16 i;
do
{
for (i=0; i<500; i++);
}
while(t--);
}
評(píng)論