从零开始的stm32程序编译
程序员文章站
2022-06-09 08:42:29
...
Keil uVision5 MDK(ARM)安装与注册
- 下载MDK5.0软件双击安装包,点“Next”
-
一直选择Next,选择软件和支持包安装路径
-
一直选择Next,安装完成,点击“Finish”
1.新建工程
(1)点击左上方Project的New μVision Project到新建的文件夹中
(2)之后开始选择芯片,这里我选择的是STM32F103系列的STM32F103C8的芯片
(3)下一步会出现运行环境管理器窗口,这是通过选项配置需要的官方库,可以在里面选择需要的文件直接搭建,也可以关掉后自己手动搭建
CMSIS的CORE
Device的Startup
是必须要选的
当选择多项时出现的警告标志时,点击图中resolve即可解决
点击确定后,工程就创建完成了
2.建立c主函数main.c到工程中
3.编写main.c的代码
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#define CLOCK 72/8
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS){
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_16);
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
}
void delay_us(unsigned int us)
{
u8 n;
while(us--)for(n=0;n<CLOCK;n++);
}
int main(){
RCC_Configuration();
GPIO_InitTypeDef gpioInit;
gpioInit.GPIO_Mode=GPIO_Mode_Out_PP;
gpioInit.GPIO_Pin=GPIO_Pin_12;
gpioInit.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOB,&gpioInit);
while(1){
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
delay_us(500000);
GPIO_SetBits(GPIOB,GPIO_Pin_12);
delay_us(500000);
}
}
参考博客
上一篇: 嵌入式学习记录(一)