STM32 起步和基础

命名规则

      

容量规定和启动文件

 

 启动

1)用户闪存 = 芯片内置的Flash。
2)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区
域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
3)SRAM = 芯片内置的RAM区,就是内存啦。

第一种正常开机,第二种ISP下载

 PA8输出8M时钟

RCC->APB2ENR|=1<<0;//使能AFIO时钟   
RCC->APB2ENR|=1<<2;//先使能外设PORTA时钟
GPIOA->CRH&=0XFFFFFFF0;   
GPIOA->CRH|=0X0000000B;//PA8复用输出         
RCC->CFGR&=~(7<<24);
RCC->CFGR|=5<<24;   //HSI OUT 8Mhz

 

 

 使用内部时钟

void init_HSI()

{
    /* Set HSION bit */
    RCC->CR |= (uint32_t) 0x00000001;

    /* select HSI as PLL source */
    RCC->CFGR |= (uint32_t) RCC_CFGR_PLLSRC_HSI_Div2;

    /* PLLCLK=8/2*12=56M */
    RCC->CFGR |= (uint32_t) RCC_CFGR_PLLMULL12;

    /* HCLK = SYSCLK/4      */
    RCC->CFGR |= (uint32_t) RCC_CFGR_HPRE_DIV4;
    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t) RCC_CFGR_HPRE_DIV1;

    /* PCLK2 = HCLK */
    RCC->CFGR |= (uint32_t) RCC_CFGR_PPRE2_DIV1;

    /* PCLK1 = HCLK */
    RCC->CFGR |= (uint32_t) RCC_CFGR_PPRE1_DIV2;

    /* Enable PLL */
    RCC->CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while ( (RCC->CR & RCC_CR_PLLRDY) == 0 )
    {
    }

    /* Select PLL as system clock source */
    RCC->CFGR    &= (uint32_t) ( (uint32_t) ~(RCC_CFGR_SW) );
    RCC->CFGR    |= (uint32_t) RCC_CFGR_SW_PLL;

    /* Wait till PLL is used as system clock source */
    while ( (RCC->CFGR & (uint32_t) RCC_CFGR_SWS) != (uint32_t) 0x08 )
    {
    }
}
View Code

 C8T6的一个工程模板

文件下载

 

RCT6的一个工程模板

 文件下载

 修改工程名称

假设原来的工程文件名是first,要改成second
1.在工程文件目录中,将first.uvopt和first.uvproj名字改成second.uvopt和second.uvproj。
2.其他first文件统统删除。
3.打开second.uvproj,
4.点击品字形图标,在弹出的界面上,双击“Project Components”下面的工程名,修改成second
5.点击project》Options for..》Output,将Name of Executeable中的名称改为second即可
6.从新编译,若编译后还有带first名的文件,删除后重新编译即可。

posted on 2017-02-13 11:16  legion  阅读(860)  评论(0编辑  收藏  举报

导航