从零开始的一个stm32的简单程序的编译

    科技2022-08-10  131

    嵌入式的学习笔记

    1.新建工程2.建立c主函数main.c到工程中3.编写main.c的代码

    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); } }

    代码转载于 链接: https://blog.csdn.net/junzia/article/details/77435725.

    第一次编译时碰到如下错误 只需要在最后一行按两下空格即可解决

    然后再进行编译,就不会报错了 (如有错误请指正,谢谢)

    Processed: 0.025, SQL: 8