你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030 Nucleo64开发板测评之:点亮你的LED

[复制链接]
黑夜之狼 发布时间:2016-11-21 10:05
本帖最后由 黑夜之狼 于 2016-11-21 10:05 编辑

闲来无事,翻箱看到了这块板子,之前没玩过M0,现在来好好玩下,有板子的朋友可以一起指导交流!

首先打开ST的选型手册,看看板载的主控芯片STM32F030R8到底有多牛叉先
STM32F030R8外设资源.png

64KFlash,8K的RAM,16*12bit的ADC,SPI、I2C、USART各2路,在JLC上查过,售价5个大洋左右,性价比还算不错,20个引脚的做到两块多....(这会不会和STM8有冲突)

板子的照片就不发了,和大多数的Nucleo板一样,那就直奔主题,来点灯吧!

点灯前,养成一个好习惯-使能外设的时钟(在这点上,很多初学者可能多数都是从51过来,都是犯了这个错误)
既然有了时钟这个概念,那么这个时钟怎么来的,到底有快呢?
我们先看看时钟树(参考手册P90 Figure 10)
STM32F030R8的时钟树.png
通过上面的时钟树,我们一共有三种不同的时钟源
1.内部8MHz RC时钟
2.外部RC时钟(可接4-32MHz晶振)
3.内部锁相环PLL时钟
由于STM32F030 Nucleo64这块开发板只留了HSE接口,焊接了LSE,我也懒得找晶振焊接上去,往后的实验会用HSI/2经过PLL,12倍频到48MHz给系统时钟(已经是这颗芯片最高时钟频率了!)
既然要用PLL,那么我们打开参考手册P94,看看PLL是如何配置的:
PLL配置步骤.png
贴上代码:
  1. void SystemClock_Config(void)
  2. {      
  3.     RCC_DeInit();                                           //将外设 RCC寄存器重设为缺省值  
  4.    
  5.     RCC_HSICmd(ENABLE);                                     //使能HSI  
  6.     while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);     //等待HSI使能成功
  7.     RCC_PLLCmd(DISABLE);                                    //禁止PLL
  8.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == SET);       //等待PLL禁止成功
  9.     RCC_HCLKConfig(RCC_SYSCLK_Div1);                        //AHB clock = SYSCLK
  10.     RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);   //PLL时钟来源HSI二分频,再12倍频,得出48MHz
  11.     RCC_PLLCmd(ENABLE);                                     //使能PLL
  12.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);     //等待PLL使能成功
  13.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);              //设置PLL为系统时钟
  14.     while(RCC_GetSYSCLKSource() != 0x08);
  15. }
复制代码
那么时钟的配置就完成了,回到之前所讲的使能外设时钟。
GPIO是挂在在AHB这个时钟总线上的,对GPIO的时钟使能,我们可以通过RCC_AHBPeriphClockCmd()这个库函数来实现,代码如下:
  1. RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //使能PA端口时钟
复制代码
板子上只有LD2才可以控制,是挂在PA5上,而配置GPIO的步骤如下:
1.选择配置的端口
2.选择控制模式
3.GPIO的速率

实现代码如下:
  1. /*
  2.     LED2<----->PA5
  3. */          
  4. //LED IO初始化
  5. void LED_Init(void)
  6. {
  7.         GPIO_InitTypeDef  GPIO_InitStructure;
  8.        
  9.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //使能PA端口时钟
  10.        
  11.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;           //LED0-->PA.5 端口配置
  12.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  13.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽输出
  14.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //IO口速度为50MHz
  15.         GPIO_Init(GPIOA, &GPIO_InitStructure);                            //根据设定参数初始化GPIOA.5
  16.         GPIO_ResetBits(GPIOA, GPIO_Pin_5);                                    //PA.5 输出低电平
  17. }
复制代码
到了这里就完成点灯这个步骤,如果让LED闪烁起来,那写一个简单的delay即可,我们这里顺带把Cortex-M0内核的嘀嗒定时器玩起来,让这个定时器完成delay功能,具体代码可参考官方例程,这里就不具体描述了






评分

参与人数 1 ST金币 +20 收起 理由
zero99 + 20

查看全部评分

收藏 1 评论19 发布时间:2016-11-21 10:05

举报

19个回答
czhuanqilai 回答时间:2017-11-23 14:02:55
黑夜之狼 发表于 2017-11-22 22:08
驱动已经安装好了,不能下载代码吗?

额,跟着论坛里某一位大神安装的,设备管理器里读取不了驱动。
然后程序也下载不进去
下载程序我就知道一种,把.bin文件拖进虚拟U盘
不会其他的方法了
黑夜之狼 回答时间:2017-11-23 16:31:41
czhuanqilai 发表于 2017-11-23 14:02
额,跟着论坛里某一位大神安装的,设备管理器里读取不了驱动。
然后程序也下载不进去
下载程序我就知道一 ...

你发的截图是已经读取到驱动的呀,是不是你的代码工程配置有问题?
黑夜之狼 回答时间:2017-11-23 16:32:29
czhuanqilai 发表于 2017-11-23 14:02
额,跟着论坛里某一位大神安装的,设备管理器里读取不了驱动。
然后程序也下载不进去
下载程序我就知道一 ...

下载我帖子上的工程,然后连接开发板,直接下载,看看
黑夜之狼 回答时间:2016-11-21 10:06:57
上传工程代码:
STM32F030_LED.rar (1.52 MB, 下载次数: 121)
zero99 回答时间:2016-11-21 13:17:12
感谢黑夜之狼分享
peter001 回答时间:2016-11-21 13:19:09
谢谢分享
黑夜之狼 回答时间:2016-11-21 13:44:02
zero99 发表于 2016-11-21 13:17
感谢黑夜之狼分享

感谢管理员和各位的支持,本人文笔实在一般,如果有错误的地方,还麻烦各位提出来,多多指导!
czhuanqilai 回答时间:2017-11-22 17:33:10
楼主,你好,我的手机号是13593144899.。积分不够,不能私信你,所以只好这样了,希望你能看到。。。  
czhuanqilai 回答时间:2017-11-22 17:33:29
楼主,你好,我的手机号是13593144899.。积分不够,不能私信你,所以只好这样了,希望你能看到。
czhuanqilai 回答时间:2017-11-22 17:43:35
前几天刚拿到板, 看了网上的一些资料,ST驱动en.stsw-link009也配置了,但不知道驱动安装成功没,不知道在线调试什么东东
黑夜之狼 回答时间:2017-11-22 19:55:46
czhuanqilai 发表于 2017-11-22 17:43
前几天刚拿到板, 看了网上的一些资料,ST驱动en.stsw-link009也配置了,但不知道驱动安装成功没,不知道在 ...

把板子连接到电脑上,看能不能读出驱动来
czhuanqilai 回答时间:2017-11-22 21:24:37
黑夜之狼 发表于 2017-11-22 19:55
把板子连接到电脑上,看能不能读出驱动来

第一次连接板子与电脑 就显示一个 设备  ST-Link Debug   
安装完驱动之后什么也读不出来
czhuanqilai 回答时间:2017-11-22 21:49:16
这是安装驱动后的C:\Users\asus\Desktop\新建文件夹
czhuanqilai 回答时间:2017-11-22 21:52:39
这是安装完驱动后的 FW{21(IN)Y34KX9x`0S7T.png
黑夜之狼 回答时间:2017-11-22 22:08:09
czhuanqilai 发表于 2017-11-22 21:52
这是安装完驱动后的

驱动已经安装好了,不能下载代码吗?
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版