本帖最后由 黑夜之狼 于 2016-11-21 10:05 编辑
闲来无事,翻箱看到了这块板子,之前没玩过M0,现在来好好玩下,有板子的朋友可以一起指导交流!
首先打开ST的选型手册,看看板载的主控芯片STM32F030R8到底有多牛叉先
64KFlash,8K的RAM,16*12bit的ADC,SPI、I2C、USART各2路,在JLC上查过,售价5个大洋左右,性价比还算不错,20个引脚的做到两块多....(这会不会和STM8有冲突  )
板子的照片就不发了,和大多数的Nucleo板一样,那就直奔主题,来点灯吧!
点灯前,养成一个好习惯-使能外设的时钟(在这点上,很多初学者可能多数都是从51过来,都是犯了这个错误)
既然有了时钟这个概念,那么这个时钟怎么来的,到底有快呢?
我们先看看时钟树(参考手册P90 Figure 10)
通过上面的时钟树,我们一共有三种不同的时钟源
1.内部8MHz RC时钟
2.外部RC时钟(可接4-32MHz晶振)
3.内部锁相环PLL时钟
由于STM32F030 Nucleo64这块开发板只留了HSE接口,焊接了LSE,我也懒得找晶振焊接上去,往后的实验会用HSI/2经过PLL,12倍频到48MHz给系统时钟(已经是这颗芯片最高时钟频率了!)
既然要用PLL,那么我们打开参考手册P94,看看PLL是如何配置的:
贴上代码:
- void SystemClock_Config(void)
- {
- RCC_DeInit(); //将外设 RCC寄存器重设为缺省值
-
- RCC_HSICmd(ENABLE); //使能HSI
- while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); //等待HSI使能成功
- RCC_PLLCmd(DISABLE); //禁止PLL
- while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == SET); //等待PLL禁止成功
- RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB clock = SYSCLK
- RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12); //PLL时钟来源HSI二分频,再12倍频,得出48MHz
- RCC_PLLCmd(ENABLE); //使能PLL
- while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //等待PLL使能成功
- RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置PLL为系统时钟
- while(RCC_GetSYSCLKSource() != 0x08);
- }
复制代码 那么时钟的配置就完成了,回到之前所讲的使能外设时钟。
GPIO是挂在在AHB这个时钟总线上的,对GPIO的时钟使能,我们可以通过RCC_AHBPeriphClockCmd()这个库函数来实现,代码如下:
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //使能PA端口时钟
复制代码 板子上只有LD2才可以控制,是挂在PA5上,而配置GPIO的步骤如下:
1.选择配置的端口
2.选择控制模式
3.GPIO的速率
实现代码如下:
- /*
- 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功能,具体代码可参考官方例程,这里就不具体描述了
|
额,跟着论坛里某一位大神安装的,设备管理器里读取不了驱动。
然后程序也下载不进去
下载程序我就知道一种,把.bin文件拖进虚拟U盘
不会其他的方法了
你发的截图是已经读取到驱动的呀,是不是你的代码工程配置有问题?
下载我帖子上的工程,然后连接开发板,直接下载,看看
感谢管理员和各位的支持,本人文笔实在一般,如果有错误的地方,还麻烦各位提出来,多多指导!
把板子连接到电脑上,看能不能读出驱动来
第一次连接板子与电脑 就显示一个 设备 ST-Link Debug
安装完驱动之后什么也读不出来
驱动已经安装好了,不能下载代码吗?