int main(void)
{
RCC_Configuration(void);
GPIO_Configuration(void);
void NVIC_Configuration(void);
while (1)
{
GPIO_SetBits(GPIOD, GPIO_Pin_2);
Delay(0x00FFF); //设置一个递减函数,这里没有给大家看。
GPIO_ResetBits(GPIOD, GPIO_Pin_2);
}
}
void RCC_Configuration(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2);
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08)
{
}
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD, ENABLE ); //打开 GPIOD 时钟
}
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //设置打开的GPIO
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置GPIO的速度
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置GPIO的工作状态
GPIO_Init(GPIOC, &GPIO_InitStructure); //把设置存入GPIOC的寄存器
}
void NVIC_Configuration(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
}
IAR上玩的 ,参考后,所以写了个简单的,但是点一个灯都不行,望指教! 感激!!
我是 小 白。。研究好久,用的是你们的产品,STM32,RBT6的,我用Set 和 Reset 里的RSBB RBB来切换状态位,这样可以吗?让一个灯亮和灭。延迟程序没有初始化。。我用的递减函数。
跟提供的例程比,我好像没有LED1 = LED0 那些,那些要加载很多东西,老是出错,最后没有采用,是这个原因吗?
还有那个Pin 如何知道PA PD 就是Pin几啊 ,我看了函数,计算的有点晕了。。这个Pin 2是参考例子才知道的 。
JTAG DOWN 了 没有反应,难道是其他的低级错误。。。求懂得 人指教。。。感激不尽! |