7.1 前言
为方便实验的进行,在实验进行之前说明一下Keil的一些设置
打开Configuration-Editor
其中Encoding选择Chinese GB2312,Tab size选择4
Configuration-User Keywords中可以自己添加用户关键字,这里先添加u8,u16,u32
Configuration-Text Completion-Show Code Completion List for中选中Struct/Class Members,Function Parameters,Symbols after 3 Characters
Dynamic Syntax Checking选中Enable
打开Options for Target-Target
把Target中的Xtal选项改为8.0MHz
Debug选择ST-Link Debugger,再点击Settings,将Trace中的改为8MHz
设置完成。
7.2 STM32点亮一个小灯需要四步:
1.声明GPIO_InitTypeDef结构体
2.使能 APB2 总线上的 GPIOC时钟
3.赋值GPIO_InitTypeDef结构体的三个成员,通过GPIO_Init函数初始化GPIO的某一个端口
4.GPIO_SetBits和GPIO_ResetBits两个函数拉高或者拉低I/O口实现小灯的亮灭
7.3 输入如下代码:
#include "stm32f10x.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
#define LED_ON GPIO_ResetBits(GPIOC,GPIO_Pin_13)
#define LED_OFF GPIO_SetBits(GPIOC,GPIO_Pin_13)
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO_InitTypeDe结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOC时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //配置PC13
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; //配置GPIO速率
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化GPIO
while(1)
{
LED_ON;
Delay(900000);
LED_OFF;
Delay(900000);
/* 下面的2句和上面的4句相同效果 */
//GPIOC->ODR ^= 0x0001<<13;
//Delay(900000);
}
}
点击Rebuild,以检查是否存在错误或警告
把工程下载到系统板中。
小灯闪烁,实验完成。
欢迎关注微信公众号『OpenSSR』