不敢造次,这次玩输入老老实实跟原子老大写吧.
按键...................我看看... ...
刚才玩过输出了,输入就没什么难了.
好,写个程序玩玩.
呃.......PA0要下拉,因为另一边接了VCC
在之前的程序改了一下,运行.OK 另外向原子老大报告一下,板大在书架上放了半年 KEY1 挂了. ,有木有保修~~~~~~~
贴出来初哥们共玩.
#include "sys.h"
#include "usart.h"
#include "delay.h"
void IO_Init(void)
{
// RCC->APB2ENR|=1<<2; //使能PORTA时钟
// RCC->APB2ENR|=1<<5; //使能PORTD时钟
RCC->APB2ENR |= 0x24; // ox24=100100 <=================================== 使能PorA 和 PorD 的时钟.
// DCBA
GPIOA->CRL&=0XFFFFFFF0;
GPIOA->CRL|=0X00000008;//PA8 推挽输出 PA0 设为输入
GPIOA->CRH&=0X0F0FFFF0;
GPIOA->CRH|=0X80800003;//PA8 推挽输出 PA13 PA15 设为输入
GPIOA->ODR |= 0XA100; // 0xA100 = 1010 0001 0000 0000 <================================== 先将PorA 的第8和13和15脚 赋值为 1
// 5432 1098 7654 3210
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
GPIOD->ODR |=0X04; // 0x04 = 100 <======================================= 先将PorD 的第2个脚 赋值为 1
// 210
}
int main(void)
{
// u8 t=0;
Stm32_Clock_Init(9);
delay_init(72);
uart_init(72,9600);
IO_Init();
while(1)
{
  Aout(8)=1;
  Dout(2)=1;
if( PAin(13)==0)
{
  Aout(8)=!PAout(8);
delay_ms(100);
  Aout(8)=!PAout(8);
delay_ms(100);
}
if( PAin(15)==0)
{
  Dout(2)=!PDout(2);
delay_ms(100);
  Dout(2)=!PDout(2);
delay_ms(100);
}
while( PAin(0)==1)
{
printf("Good Good study day day up:%d\n");
  Aout(8)=!PAout(8);
  Dout(2)=!PDout(2);
}
}
}
好了,明天跳级了,玩下中断.  |