#include <stm32f10x_lib.h>
#include<sys.h>
#include<delay.h>
int main(void)
{
u8 num;
Stm32_Clock_Init(9);
delay_init(72);
JTAG_Set(0x10);//关闭JTAG SWD
RCC->APB2ENR |= 1<<2; //允许PA时钟
RCC->APB2ENR |= 1<<5; //允许PD时钟
GPIOD->CRL &= 0xfffff0ff;
GPIOD->CRL |= 0x00000300; //输出模式 PD2推挽
GPIOA->CRH &= 0xfffffff0;
GPIOA->CRH |= 0x00000003; //输出模式 PA8推挽
GPIOA->CRL &= 0xfffffff0;
GPIOA->CRL |= 0x00000008; //输入模式 PA0
GPIOA->CRH &= 0x0f0fffff;
GPIOA->CRH |= 0x80800000; //输入模式 PA 13 15
// GPIOA->ODR &= 0xfffffffe; //下拉输入 高电平有效
GPIOA->ODR |= 1<<13; //上拉输入 低电平有效
GPIOA->ODR |= 1<<15; //上拉输入 低电平有效
// GPIOA->ODR |= 1<<8;
// GPIOD->ODR |= 1<<2;
do
{
if(PAin(0)==1 || PAin(13)==0 || PAin(15)==0)
{
if(PAin(0) == 1)
{
num = 1;
}
else if(PAin(13) == 0)
{
num = 2;
}
else if(PAin(15) == 0)
{
num = 3;
}
switch(num)
{
case 1:
  Bout(8)=!PBout(8);
break;
case 2:
  Dout(2)=!PDout(2);
break;
case 3:
  Aout(8)=!PAout(8);
  Dout(2)=!PDout(2);
break;
}
}
delay_ms(100);
}while(1);
}
新手 实验二 我写的时候PAout(8)=!PAout(8); 写成PBout(8)=!PBout(8);却控制了 PDout(2)=!PDout(2);
按PA0没反应,按PA13和15都是控制PDout(2) 。。 求解
|