//Author:”泪与汗的纠缠”
//Data:2011-11月
//功用:NPN、PNP的辨认程序
#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–);
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/257892.html