板子目前不是你们的板子,是我自己买的最小系统板,写了程序一直点不亮LED,不知道是不是程序问题还是板子问题,如果板子有问题的话,我看是该换了。
#include "stm32f10x_lib.h"
ErrorStatus HSEStartUpStatus;
GPIO_InitTypeDef GPIO_InitStructure;
void RCC_Configuration(void)
{
//将RCC寄存器重新设置为默认值
RCC_DeInit();
//打开外部HSE
RCC_HSEConfig(RCC_HSE_ON);
//等待HSE稳定工作
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
//设置AHB时钟72MHZ
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//设置低速AHB时钟36MHZ
RCC_PCLK1Config(RCC_HCLK_Div2);
//设置高速AHB时钟72MHZ
RCC_PCLK2Config(RCC_HCLK_Div1);
//设置PLL
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
//使能PLL
RCC_PLLCmd(ENABLE);
//等待PLL工作
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
//设置系统时钟
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
//判断PLL是否是系统时钟
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
else
{
RCC_HSICmd(ENABLE);
//设置AHB时钟72MHZ
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//设置低速AHB时钟36MHZ
RCC_PCLK1Config(RCC_HCLK_Div2);
//设置高速AHB时钟72MHZ
RCC_PCLK2Config(RCC_HCLK_Div1);
//设置系统时钟
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
}
}
void GPIO_Configuration(void)
{
//初始化PB
GPIO_DeInit(GPIOB);
//使能PB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOB, ENABLE);
//设置PB
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
GPIO_ResetBits(GPIOB, GPIO_Pin_8 );
GPIO_SetBits(GPIOB, GPIO_Pin_8);
}
|