看论坛挺冷清的,发一个最入门的跑马灯,不过延时随便用软件弄的,没有用systemtick,代码如下:
#include "stm32f10x.h"
void led_init(void);
void PA8_ON(void);
void PD2_ON(void);
void delay(uint32_t dly);
int main(void)
{
led_init();
for(;;)
{
PA8_ON();
delay(100);
PD2_ON();
delay(100);
}
}
void led_init(void)
{
RCC->APB2ENR |= 0x00000024; //打开GPIOA,GPIOD的时钟
GPIOA->CRH &= 0xFFFFFFF0; //复位 GPIOA 的PA8端口控制
GPIOA->CRH |= 0x00000003; //设置 GPIOA 的PA8推挽输出
GPIOA->ODR |= 0x00000100; //设置 GPIOA 的PA8输出1
GPIOD->CRL &= 0xFFFFF0FF;
GPIOD->CRL |= 0x00000300;
GPIOD->ODR |= 0x00000004;
}
void PA8_ON(void)
{
GPIOA->ODR &= ~0x00000100; //设置 GPIOA 的PA8输出0
GPIOD->ODR |= 0x00000004;
}
void PD2_ON(void)
{
GPIOA->ODR |= 0x00000100; //设置 GPIOA 的PA8输出1
GPIOD->ODR &= ~0x00000004;
}
void delay(uint32_t dly)
{
dly *=72000;
while(dly--);
}
|