历史上的今天
今天是: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);
}
}
史海拾趣
|
uClinux 中的second loader , crt0ram.S文件问题 请高手指点: 嵌入式uClinux 中的second loader , crt0ram.S文件中(以Arcturus的uc5272为例) #ifdef CONFIG_ROMFS_FS /* * Move ROM filesy ...… 查看全部问答> |
|
我是新手,大家多指教. 2000 DDK下附带了源码passthru.我首先用softice symbol loader生成了passthru.nms,然后加载.然后在softice里设置断点bpx DriverEntry.最后安装驱动.可是为什么softice 没有截到DriverEntry函数呢??用DebugView看驱动 ...… 查看全部问答> |
|
请问哪位大虾有WINCE下对makefile和source介绍比较好的资料啊,想了解一下其具体写法。 有的话麻烦大虾发一份给我,或者留下网址,我自己去下载也可以。在此先谢过了。 mail:xiangxingjun@126.com… 查看全部问答> |
|
通过现实生活中的一个有趣味的应用,评估板和样码展示ST7FLITEUS微控制器的各种功能 2006年11月23日 — 意法半导体(纽约证券交易所代码:STM)今天推出了建议转售价格仅为12美元的低成本的ST7Lite系列微控制器评估及开发工具套 ...… 查看全部问答> |




