[mw_shl_code=c,true]#include "stm32f10x.h"
#include "usart.h"
#include "delay.h"
#include "sys.h"
#include "led.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
u8 Key_Value=0;
int main()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
delay_init();
NVIC_Configuration();
uart_init(9600);
LED_Init();
while(1)
{
if((GPIO_ReadInputData(GPIOB)&0xff)!=0x0f)
{
delay_ms(10);
if((GPIO_ReadInputData(GPIOB)&0xff)!=0x0f)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);
GPIO_ResetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
switch(GPIO_ReadInputData(GPIOB)&0xff)
{
case 0x11:Key_Value=1;printf("11111\n");LED1=~LED1;break;
case 0x21:Key_Value=2;printf("22222\n");LED1=~LED1;break;
case 0x41:Key_Value=3;printf("33333\n");LED1=~LED1;break;
case 0x81:Key_Value=4;printf("aaaaa\n");LED1=~LED1;break;
}
GPIO_SetBits(GPIOB,GPIO_Pin_1);
GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_3);
switch(GPIO_ReadInputData(GPIOB)&0xff)
{
case 0x12:Key_Value=5;printf("44444\n");LED1=~LED1;break;
case 0x22:Key_Value=6;printf("55555\n");LED1=~LED1;break;
case 0x42:Key_Value=7;printf("66666\n");LED1=~LED1;break;
case 0x82:Key_Value=8;printf("bbbbb\n");LED1=~LED1;break;
}
GPIO_SetBits(GPIOB,GPIO_Pin_2);
GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3);
switch(GPIO_ReadInputData(GPIOB)&0xff)
{
case 0x14:Key_Value=9;printf("77777\n");break;
case 0x24:Key_Value=10;printf("88888\n");LED1=~LED1;break;
case 0x44:Key_Value=11;printf("999999\n");LED1=~LED1;break;
case 0x84:Key_Value=12;printf("cccccc\n");LED1=~LED1;break;
}
GPIO_SetBits(GPIOB,GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2);
switch(GPIO_ReadInputData(GPIOB)&0xff)
{
case 0x18:Key_Value=13;printf("******\n");LED1=~LED1;break;
case 0x28:Key_Value=14;printf("00000\n");LED1=~LED1;break;
case 0x48:Key_Value=15;printf("#####\n");LED1=~LED1;break;
case 0x88:Key_Value=16;printf("dddddd\n");LED1=~LED1;break;
}
}
}
GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
GPIO_ResetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
}
return 0;
}
[/mw_shl_code]
您好!这是禁止了JTAG后的代码,矩阵键盘用的PB0-7,它一开机,就自动发送111114444477777,按别的按键也没有反应? |