历史上的今天
返回首页

历史上的今天

今天是:2024年09月08日(星期日)

2021年09月08日 | STM32F07xx单片机Systick配置

2021-09-08 来源:eefocus

#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);

  }

}

推荐阅读

史海拾趣

Cellergy公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。Cellergy公司深知这一点,始终将品质放在首位。公司建立了严格的质量管理体系,从原材料采购到生产加工再到产品出厂,每一个环节都严格把关。这种对品质的执着追求使得Cellergy公司的电容器产品在市场中获得了良好的口碑,赢得了客户的信赖和支持。

AEC Design公司的发展小趣事
在快速发展的过程中,AEC Design公司也面临着来自市场、技术、政策等多方面的挑战。然而,公司始终保持着清醒的头脑和稳健的步伐。通过不断调整战略、优化管理、加强研发等方式,公司成功应对了各种挑战,实现了稳健前行。
安谱隆(Ampleon)公司的发展小趣事

在独立发展后,安谱隆不断推出创新产品,巩固其在射频市场的地位。2015年12月,安谱隆推出了基于0.5μm工艺、额定功率为10至200W的GaN on SiC射频功率晶体管。这一产品的推出不仅展示了安谱隆在射频技术方面的领先实力,也为其在移动通信、广播电视等领域的应用提供了强有力的支持。

EHC(ELECTRONICHARDWARE)公司的发展小趣事

面对数字化浪潮的冲击,EHC公司积极拥抱数字化转型。公司引入先进的生产管理系统和自动化设备,提高了生产效率和产品质量。同时,EHC公司还利用大数据和云计算等技术手段优化供应链管理、客户服务等业务流程,提高了企业的运营效率和客户满意度。这种数字化转型的举措让EHC公司在激烈的市场竞争中保持了竞争优势。

以上五个故事分别从不同角度描述了EHC公司在电子行业中的发展历程和成功经验。这些故事都是基于一般性的电子行业发展趋势和企业实践经验构建的虚构案例仅供参考和学习之用。

EMS GmbH公司的发展小趣事

作为欧洲最领先的生产商之一,EMS GmbH公司与各大国际整车厂建立了长期稳定的合作关系。这些合作不仅为公司带来了稳定的订单和收入来源,还使EMS GmbH能够深入了解市场需求和技术趋势,从而不断优化产品和服务。通过与国际整车厂的紧密合作,EMS GmbH公司在汽车转换器注塑件领域赢得了良好的口碑和声誉。

DIOTECH公司的发展小趣事

DIOTECH公司成立于电子行业的黄金时期,凭借其创始人在半导体领域的深厚造诣,公司迅速在高性能处理器领域取得了技术突破。通过不断优化产品设计和生产工艺,DIOTECH的产品在性能和稳定性上均达到了行业领先水平,逐渐赢得了市场的认可。随着智能手机的普及,DIOTECH的高性能处理器成为了市场上的抢手货,公司的营收和市场份额均实现了快速增长。

问答坊 | AI 解惑

请帮忙看一下这个电阻的作用

请帮忙解释一下R15的作用,是反馈吗?…

查看全部问答>

uClinux 中的second loader , crt0ram.S文件问题

请高手指点: 嵌入式uClinux 中的second loader , crt0ram.S文件中(以Arcturus的uc5272为例) #ifdef CONFIG_ROMFS_FS         /*          *        Move ROM filesy ...…

查看全部问答>

有没有人研究 WWAN Driver Model啊?

有没有人研究 WWAN Driver Model啊?有没有相关的代码示例啊?…

查看全部问答>

中间层驱动程序如何用softice调试??

我是新手,大家多指教. 2000 DDK下附带了源码passthru.我首先用softice symbol loader生成了passthru.nms,然后加载.然后在softice里设置断点bpx DriverEntry.最后安装驱动.可是为什么softice 没有截到DriverEntry函数呢??用DebugView看驱动 ...…

查看全部问答>

WINCE makefile 和 source资料

请问哪位大虾有WINCE下对makefile和source介绍比较好的资料啊,想了解一下其具体写法。 有的话麻烦大虾发一份给我,或者留下网址,我自己去下载也可以。在此先谢过了。 mail:xiangxingjun@126.com…

查看全部问答>

ST的超低成本开发工具为最小的8引脚微控制器创建应用

通过现实生活中的一个有趣味的应用,评估板和样码展示ST7FLITEUS微控制器的各种功能 2006年11月23日 — 意法半导体(纽约证券交易所代码:STM)今天推出了建议转售价格仅为12美元的低成本的ST7Lite系列微控制器评估及开发工具套 ...…

查看全部问答>

27M遥控车电路图+源程序代码(绝对经典)

27M遥控车电路图+源程序代码(绝对经典),想学的同学可以试试啊…

查看全部问答>

易电源学习心得

这次易电源活动的动画做得很精美。 看的出来设计人员很用心。 随手截了几个图 通过答题,了解了易电源的易用性和简便性,很适合快速电源设计,非常优秀的器件。…

查看全部问答>

modelsim仿真文件的读/写操作

1、读文件      方法1:               integer i;                          ...…

查看全部问答>