STM32的代码有库函数和寄存器两种操作
上一篇写到了keil编译的设置,主要是针对库函数操作。
而寄存器操作,所用的文件较少,所以,只需设置run-time环境如下:
其他不用设置,即可成功编译一个简单的跑马灯代码。
代码如下:
#include <stm32f10x.h>
//延时
void delayms(u16 n)
{
u16 i;
for(;n>0;n--)
{
for(i=0;i<500;i++){;}
}
}
int main(void)
{
u8 i;
RCC->APB2ENR |= 1<<2; //使能GPIO Port A
GPIOA->CRL &= 0x00000000; //GPIOA初始化
GPIOA->CRL |= 0x33333333; //GPIOA设置为输出模式,50MHz,通用推挽
GPIOA->ODR |= 0x000000FF; //GPIOA低8位设置为1
while(1)
{
for(i=0;i<8;i++)
{
GPIOA->BRR |= 1<<i; //PA的第i位清0,LED亮
delayms(1000);
GPIOA->BRR &= 0<<i; //PA的第i位释放控制
GPIOA->BSRR |= 1<<i; //PA的第i位置1,LED灭
}
}
}