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 ) { } }
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名的文件,删除后重新编译即可。