stm32f103c8T6的sys.c程序
时间: 2023-08-01 21:11:59 浏览: 150
以下是 stm32f103c8t6 的 sys.c 程序的模板代码,您可以根据自己的需求进行修改:
```c
#include "sys.h"
//时钟初始化函数
//pll:选择的倍频数,从2开始,最大值为16
void Stm32_Clock_Init(u8 pll)
{
unsigned char temp=0;
RCC->CR|=0x00010000; //外部高速时钟使能位设置
while(!(RCC->CR>>17));//等待外部时钟就绪
RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
pll-=2;//抵消2个单位
RCC->CFGR|=pll<<18; //设置PLL值 2~16
RCC->CFGR|=1<<16; //PLLSRC ON
FLASH->ACR|=0x32; //FLASH 2个延时周期
RCC->CR|=0x01000000; //PLL ON
while(!(RCC->CR>>25));//等待PLL锁定
RCC->CFGR|=0x00000002; //PLL作为系统时钟
while(temp!=0x02)//等待PLL作为系统时钟设置成功
{
temp=RCC->CFGR>>2;
temp&=0x03;
}
}
//初始化函数
void Stm32_Init(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
delay_init(72); //延时初始化,72Mhz
uart_init(72,115200); //串口波特率设置
}
```
阅读全文