| 首先呢,很感谢这次ST的活动,有幸获取五块开发板,选型的时候,想到一直都没玩过M0,所以选择了这块STM32F030 Nucleo64开发板来玩玩我们先看看这颗芯片的外设: 
   64KFlash,8K的RAM,16*12bit的ADC,SPI、I2C、USART各2路,在JLC上查过,售价5个大洋左右,性价比还算不错
    
 和以前玩其他单片机一样,先从点灯开始吧!
 点灯前呢,先看看这颗芯片的时钟树:
 
   由于这块开发板留了HSE的接口,但是没有把晶振焊接上去,我也懒得翻箱找晶振了,干脆用HSI来玩算了
    这次,用HSI/2当做PLL输入,12倍频到48MHz(已经是这颗芯片的最高速度了!)
 我们可以打开参考手册P94页看看具体的配置步骤:
 
   
 贴上代码:
 
 然后我们来配置GPIO,板子的LD2是挂在PA5上的:void SystemClock_Config(void)
{ 
 到了这里就完成点灯这个步骤,如果让LED闪烁起来,那写一个简单的delay即可,我们这里顺带把Cortex-M0内核的嘀嗒定时器玩起来,让这个定时器完成delay功能,具体代码可参考官方例程,这里就不具体描述了(LZ的文笔有限,见笑了/*
    LED2<----->PA5
*/           
//LED IO初始化
void LED_Init(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
         
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //使能PA端口时钟
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;           //LED0-->PA.5 端口配置
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //IO口速度为50MHz
        GPIO_Init(GPIOA, &GPIO_InitStructure);                            //根据设定参数初始化GPIOA.5
        GPIO_ResetBits(GPIOA, GPIO_Pin_5);                                    //PA.5 输出低电平 
}
 
   ) 工程代码如下:
 
  STM32F030_LED.rar
(1.52 MB, 下载次数: 15) 
 
 |