没有合适的资源?快使用搜索试试~ 我知道了~
STM32进行软件开发时,最基本的就是对STM32芯片进行时钟和端口配置,然后是对项目所用到的片上资源进行配置并驱动,下面给出时钟和端口配置代码,该代码几乎涵盖了片上所有时钟和端口配置项目,可根据自己需要进行删除不必要的配置项
资源推荐
资源详情
资源评论
对STM32进行软件开发时,最基本的就是对STM32芯片进行时钟和端口配置,然后是对项目所用到的片上资源进行配置并驱动,下面给出时钟和端口配置代码,该代码几乎涵盖了片上所有时钟和端口配置项目,可根据自己需要进行删除不必要的配置项:
/*******************************************************************************
* Function Name : RCC_Configuration 复位时钟控制配置
* Description : Configures the different system clocks.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void RCC_Configuration(void)
{
/* system clocks configuration -----------------系统时钟配置-------------------*/
/* RCC system reset(for debug purpose) */
RCC_DeInit(); //将外设RCC寄存器重设为缺省值
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON); //开启外部高速晶振(HSE)
/*******************************************************************************
* Function Name : RCC_Configuration 复位时钟控制配置
* Description : Configures the different system clocks.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void RCC_Configuration(void)
{
/* system clocks configuration -----------------系统时钟配置-------------------*/
/* RCC system reset(for debug purpose) */
RCC_DeInit(); //将外设RCC寄存器重设为缺省值
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON); //开启外部高速晶振(HSE)
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待HSE起振
if(HSEStartUpStatus == SUCCESS) //若成功起振,(下面为系统总线时钟设置)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //使能FLASH预取指缓存
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2); //设置FLASH存储器延时时钟周期数(根据不同的系统时钟选取不同的值)
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB时钟=72 MHz
/* PCLK2 = HCLK/2 */
RCC_PCLK2Config(RCC_HCLK_Div2); //设置APB1时钟=36 MHz(APB1时钟最大值)
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div1); //设置APB2时钟=72 MHz
/* Configure ADCCLK such as ADCCLK = PCLK2/2 */
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待HSE起振
if(HSEStartUpStatus == SUCCESS) //若成功起振,(下面为系统总线时钟设置)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //使能FLASH预取指缓存
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2); //设置FLASH存储器延时时钟周期数(根据不同的系统时钟选取不同的值)
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB时钟=72 MHz
/* PCLK2 = HCLK/2 */
RCC_PCLK2Config(RCC_HCLK_Div2); //设置APB1时钟=36 MHz(APB1时钟最大值)
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div1); //设置APB2时钟=72 MHz
/* Configure ADCCLK such as ADCCLK = PCLK2/2 */
剩余7页未读,继续阅读
资源评论
wangbinzan2
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功