STM32F07xx单片机Systick配置

发布者:Jinghua6666最新更新时间:2021-10-14 来源: eefocus关键字:单片机  Systick配置 手机看文章 扫描二维码
随时随地手机看文章

#include "main.h"


typedef uint32_t  u32;

typedef uint16_t u16;

typedef uint8_t  u8;

/*----------------------------------------------------------------------------

 * SystemCoreClockConfigure: configure SystemCoreClock using HSI

 *----------------------------------------------------------------------------*/

void SystemCoreClockConfigure(void)

{

  RCC->CR |= ((uint32_t)RCC_CR_HSION);                     // Enable HSI

RCC->CR &= ~((uint32_t)RCC_CR_HSEON);                    // Disable HSE

  while ((RCC->CR & RCC_CR_HSIRDY) == 0);                  // Wait for HSI Ready


  RCC->CFGR = RCC_CFGR_SW_HSI;                             // HSI is system clock

  while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI);  // Wait for HSI used as system clock


  FLASH->ACR  = FLASH_ACR_PRFTBE;                          // Enable Prefetch Buffer

  FLASH->ACR |= FLASH_ACR_LATENCY;                         // Flash 1 wait state


  RCC->CFGR |= RCC_CFGR_HPRE_DIV1;                         // HCLK = SYSCLK

  RCC->CFGR |= RCC_CFGR_PPRE_DIV1;                         // PCLK = HCLK


  RCC->CR &= ~RCC_CR_PLLON;                                // Disable PLL


  //  PLL configuration:  = HSI/2 * 12 = 48 MHz

  RCC->CFGR &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMUL);

  RCC->CFGR |=  (RCC_CFGR_PLLSRC_HSI_DIV2 | RCC_CFGR_PLLMUL12);


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

  while((RCC->CR & RCC_CR_PLLRDY) == 0) __NOP();           // Wait till PLL is ready


  RCC->CFGR &= ~RCC_CFGR_SW;                               // Select PLL as system clock source

  RCC->CFGR |=  RCC_CFGR_SW_PLL;

  while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL);  // Wait till PLL is system clock src

}


void delay_us(u16 us)

{

SysTick->LOAD = us*8; //设置时间

SysTick->VAL = 0x00;        //清空计数器

SysTick->CTRL = 0x01;      //开始倒数

while((SysTick->CTRL & 0x10000) == 0);


SysTick->CTRL=0x00;       //关闭计数器

SysTick->VAL =0X00;       //清空计数器

}


void delay_ms(u16 ms)

{

SysTick->LOAD = 1000*8; //设置时间为1ms   

SysTick->VAL = 0x00;        //清空计数器

SysTick->CTRL = 0x01;      //开始倒数

while(ms)

{

while((SysTick->CTRL & 0x10000) == 0);

ms--;

}

SysTick->CTRL=0x00;       //关闭计数器

SysTick->VAL =0X00;       //清空计数器

}


void GPIO_test(void)

{                

   GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC , ENABLE);

   //Latch Pin

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

   GPIO_Init(GPIOC, &GPIO_InitStructure);

}


int main(void)

{

  SystemCoreClockConfigure();

// SystemCoreClockUpdate();

USART_Config(115200);

GPIO_test();

  while (1)

  {

GPIO_SetBits(GPIOC,GPIO_Pin_6);

     delay_ms(2000);

GPIO_ResetBits(GPIOC,GPIO_Pin_6);

     delay_ms(2000);

  }

}

关键字:单片机  Systick配置 引用地址:STM32F07xx单片机Systick配置

上一篇:LCD驱动芯片——BL55072A驱动程序
下一篇:STM32F07xx单片机串口4配置

推荐阅读最新更新时间:2024-11-10 10:15

51单片机连接24C02-C语言测试代码
我总结3点需要注意的地方 1.关闭非IIC通信器件,比如我的开发板SDA和SCL也连接了DS1302,造成干扰会没有结果。 2.IIC通信的应答,发送端在SCL为0时将SDA置1,等待接收端拉低SDA;接收端在拉低SDA持续一个周期后,应将SDA置1释放总线。 主机作为发送端等待应答 SDA=1; SCL=1; while(SDA); SCL=0; 主机作为接收端,进行应答或不应答 SDA=0; //不应答则为1 SCL=1; SCL=0; SDA=1; 3.24C02在写入周期完成后还有有内部写入时间Twr,所以可以查手册加入适当时间的延时函数,或者使用查询应答的方式进行延时等待。 总之,关键是注意
[单片机]
AT89C2051单片机开发点钞机外接显示屏
从图上可以清楚的看出:点钞机的外接显示屏主要由 单片机 Atmel公司生产的AT89C2051、三只七段共阳数码管LED1~LED3、晶体三极管V1~V3和相应的电阻电容及插头所组成。 大家知道,LED数码管是由发光二极管作为显示字段的数码型显示器件。在数码管显示器中,一般情况下都采用动态扫描式显示方式。所谓扫描式,就是当有多个七段(带小数点的为八段)显示器要显示时,将其各个对应引脚接在一起,也就是说,所有的a段接在一起,b段也接在一起,依此类推。而利用各七段显示器的共阳(或共阴)极来确定哪一个七段显示器要显示。这样做的目的有二:(1)省电;(2)节省输出端口。 本电路利用89C2051的端口与数码的笔段接法为: P
[单片机]
AT89C2051<font color='red'>单片机</font>开发点钞机外接显示屏
单片机常用功能模块的使用 Part5. 独立按键
1、连接方法: 2、使用方法: (1)、标准使用: 把对应的端口赋值高电平,即 1 ,按键按下,端口被拉低至低电平,即 0 ,通过检测该端口的电平即可判断按键是否按下。 (2)、按键去抖动: 上图看出按键按下和松开的瞬间出现机械抖动,这个抖动时间虽然很短,一般 10~15 ms,不同按键抖动不同,但对应单片机来说,很轻松就能检测到,单片机是 us 级别。但实际上只进行一次按键操作,但有可能执行了多次按键结果,这就是抖动造成的,所以大多数产品实际使用中都使用了按键去抖功能。 软件去抖原理: ①、检测到按键按下后进行 10~15 ms 延时,用于跳过这个抖动区域 ②、延时后再检测按键状态,如果没有按下表明是抖
[单片机]
<font color='red'>单片机</font>常用功能模块的使用 Part5. 独立按键
RUPI-44系列单片机与051单片机在内部结构上有什么区别?
RUPI-44系列单片机中的CPU与8051基本相同,其指令系统、各口的操作、片内EPROM编程,以及为操作等均与8051相同。 它们的差异主要区别在: 1、RUPI-44系列单片机用SIU取代8051的串行口,并增加了一些SIU专用寄存器。 SIU发送和接收的数据自或送至内部双口RAM。这种双口ROM既可以由CPU访问,又可以由SIU访问。 2、有5个引脚具有特殊定义。 3、RUP1-44系列单片机的内部RAM有192个字节,而8051只有128个字节
[单片机]
基于STM8L15xxx设计的超低功耗8位MCU开发方案
ST公司的STM8L15xxx是超低功耗8位MCU系列,采用先进的STM8内核,动态功耗为192 μA/MHZ,16MHz CPU时钟的性能高达16 MIPS, 工作电压从1.8 V 到3.6 V (低至1.65 V ),多达32KB嵌入闪存程序存储器,主要用在医疗和手提设备,PC外设,游戏机,GPS,告警系统,有线和无线传感器.本文介绍了STM8L15xxx主要特性,方框图, 时钟树框图和超低功耗STM8L15LPBOARD演示板主要特性,详细电路图. The STM8L15xxx devices are members of the STM8L Ultralow power 8-bit family. They are ref
[单片机]
基于STM8L15xxx设计的超低功耗8位<font color='red'>MCU</font>开发方案
浮点数清零--MCS-51单片机实用子程序
标号: FCLR 功能:浮点数清零 入口条件:操作数在 中。 出口信息:操作数被清零。 影响资源:A 堆栈需求: 2字节 FCLR: INC R0 INC R0 CLR A MOV @R0,A DEC R0 MOV @R0,A DEC R0 MOV @R0,#41H RET
[单片机]
使用电容器降低MCU的电源噪声
STM32是广泛应用的MCU,涵盖Cortex-M0、M3、M4和M7内核,共有1236多个系列,包含STM32主流MCU、STM32高性能MCU、STM32超低功耗MCU、STM32无线MCU、STM32 Arm Cortex MPUs等门类。 STM32 MCU内置高级12位ADC(取决于器件),提供自校准功能。在涉及模数转换的应用中,ADC精度会影响整体的系统质量和效率。而ADC精度不仅取决于ADC性能和功能,还取决于ADC周围的整体应用设计,例如电源噪声,这些恰恰可以能通过电容器过滤掉。 在电源线和地线之间,建议连接具有优良高频特性的电容。也就是说,应在靠近电源的位置安装一个0.1μF和一个1至10μF的电容,这些
[单片机]
使用电容器降低<font color='red'>MCU</font>的电源噪声
MSP430单片机的 振荡器与系统时钟
简介: 我们这节课的主要内容有: ·时钟源与时钟信号 ·时钟部分的控制寄存器 ·程序中对时钟的操作 1,时钟源与时钟信号 MSP430f149有着丰富的时钟源,作为一代超低功耗的MCU,可以在不同的场合,不同的应用环境下为不同的系统时钟选择不同的时钟源,并对这些时钟源进行多种多样的操作。对于MSP430来说,其时钟系统由低速晶体振荡器LFXT1、高速晶体振荡器XT2和数控振荡器DCO组成。 而三个时钟发生系统所产生的时钟经选择和处理后将分别作为辅助时钟ACLK、主系统时钟MCLK和子系统时钟SMCLK。 MSP430这种多时钟源、多系统时钟的特点,使得它能够很容易实现系统的超低功耗和功耗控制:当系统需要进行数
[单片机]
MSP430<font color='red'>单片机</font>的 振荡器与系统时钟

推荐帖子

stm32 PKstm8
STM8没有出路吗?我看到大家谈论的都是STM32的东西stm32PKstm8
yangyi1818 stm32/stm8
硬件领域的公司都回招哪些类的职位?
请教一下大家一个做硬件领域的公司都会招些什么类型的职位?硬件领域的公司都回招哪些类的职位?电源,模拟,IC设计(FPGA/CPLD),layout,机械结构,产品工程师,。。。还有房地产的话。。。有土木工程师,项目经理。。。财务。。总监之类的职位。。
Essen 嵌入式系统
出一套EKC LM3S8962板
出一套EKCLM3S8962,板子挺不错的。支持E金币,支持人民币,支持买前测试,买家提供测试方法,,不支持退换货,一锤子卖买,别纠结。交易方式,见贴子后面的交易地点。价格150,论坛的老基友9折,另送随机物品(可以是板子,芯片,也可以是我发的其它贴子中拆出来的各种玩意)。另外出套全功能模拟电路设计套件AnalogDiscoveryStellaris®LM3S8962评估板是一个简单通用的基于StellarisLM3S8962(ARM®Co
strong161 淘e淘
TMS320C6670的无线基带信号处理系统设计
TMS320C6670的无线基带信号处理系统设计TMS320C6670的无线基带信号处理系统设计
Jacktang DSP 与 ARM 处理器
经网友指点,找来LPC板块,想把温度流量传感器采集到的信息显示在液晶屏上
我在传感器板块发了这么一个帖子(开始我连发什么板块都不知道,觉得用到了传感器,所以应该发传感器吧)------------------------------------------------------------------------------------------我从来没搞过开发,不过想自己DIY点东西。(需要的相关知识都可以从头学)现在我有这样一个需求:两个传感器,一个是温度传感器(浸泡在水中的),一个是流量传感器(说明书上说输出方波。什么是方波?)我想把这两个传感器获得
planningall NXP MCU
急,PWM
我需要输出6路不同相位的PWM输出,相位差为60度,不知道如何设定相位差,请各位大虾帮忙。我用的是MSP430F449。急,PWM//*******************************************************************************//MSP-FET430P140Demo-Timer_B,PWMTB1-6,UpMode,32kHzACLK////Description;Thisprogramout
gdq 微控制器 MCU
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved