TEST.C 的内容:#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
GPIOB->ODR=0xAAFF;
delay_ms(300);
GPIOB->ODR=0x55FF;
delay_ms(300);
}
}
这里只用了PB端口的高八位,所以在给ODR寄存器赋值的时候可以不考虑低八位,即这里的0xAA- -后两位可以是任意值。但是如果有其他外设的时候就必须考虑后两位的值对这些外设的影响。
下面是LED.C 的内容:
#include <stm32f10x_lib.h>
#include "led.h"
//初始化PB8为输出口.并使能他的时钟
//LED IO初始化
void LED_Init(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOB->CRL=0X33333333;//设置PB低八位为推挽输出
GPIOB->CRH=0X33333333;//设置PB高八位为推挽输出
GPIOB->BRR=0X00000000;//清楚PB端口数据
}
具体步骤:打开ALIENTEK MINISTM32开发板寄存器版本的第一个例程跑马灯:然后将里面的 test.c 和 led.c 更改为上述配置即可。
程序经过测试,有错误或者多余的设置还请亲们指正!
|