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