STM32学习记录
寄存器版+流水灯
STM32F103C6 芯片
//PA管脚的流水灯
#include "sys.h"
#include "delay.h"
#include "usart.h"
void Delay(long x) //自定义延时函数
{
int i,j;
while(x--)
{
for(i=0;i<120;i++)
{
for(j=0;j<500;j++)
{
;
}
}
}
}
void main(void)
{
int i;
Stm32_Clock_Init(9);
delay_init(72);
RCC->APB2ENR|=1<<2; //GPIOA使能
GPIOA->CRH=0X33333333; //强推挽输出模式3 高位配置8~15
GPIOA->CRL=0X33333333; //低位配置 0~7
//GPIOA->ODR=0X00000000; //ODR默认情况下是这个值 都为低电平
//GPIOA->ODR=0X0000FFFE; //PA0为低电平,其它全为高电平
//GPIOA->ODR=0X00007FFF; //PA15为低电平,其它全为高电平
GPIOA->ODR=0X0000FFFF; //全为高电平
while(1)
{
for(i=0;i<16;i++)
{
GPIOA->ODR&=~(1<<i); //给低电平
Delay(5); //延时,以呈现效果
GPIOA->ODR|=1<<i; //给高电平
}
}
}