打印
[STM32L4]

STM32L4+ 板卡资料大分享

[复制链接]
楼主: chenqiang10
手机看帖
扫描二维码
随时随地手机跟帖
21
chenqiang10|  楼主 | 2018-2-28 14:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
USB引脚配置 后面我们会介绍例子给大家看

使用特权

评论回复
22
chenqiang10|  楼主 | 2018-2-28 15:02 | 只看该作者
以太网管脚管脚分布以及SB短节点注意事项


使用特权

评论回复
23
chenqiang10|  楼主 | 2018-2-28 15:03 | 只看该作者
开发板原理图  电源部分

使用特权

评论回复
24
chenqiang10|  楼主 | 2018-2-28 15:06 | 只看该作者
关于电路原理图大家可以去ST官网搜索MB1312  http://www.st.com/content/st_com/en.html

使用特权

评论回复
25
chenqiang10|  楼主 | 2018-2-28 15:08 | 只看该作者
最后咱们来用keil 来新建一个流水灯的程序来玩一把

使用特权

评论回复
26
chenqiang10|  楼主 | 2018-2-28 15:09 | 只看该作者
在一次的新建工程基础上来点亮板卡上的三颗LED,实现对neclo的入门,好了开干。LD1在板卡所在的位置如图

使用特权

评论回复
27
chenqiang10|  楼主 | 2018-2-28 15:09 | 只看该作者
默认 PB0连接,经过单压跟随器(自己理解的,如有错误,欢迎批评指正)到R32限流电阻后加载到LD1上面。我们只需给高电平即可点亮绿色指示LED。

使用特权

评论回复
28
chenqiang10|  楼主 | 2018-2-28 15:11 | 只看该作者
LD2 默认接到PB7管脚 ,只需要输高电平即可点亮蓝色指示LED。

使用特权

评论回复
29
chenqiang10|  楼主 | 2018-2-28 15:12 | 只看该作者
LD3默认接到PB14管脚 ,只需要输高电平即可点亮红色指示LED。

使用特权

评论回复
30
chenqiang10|  楼主 | 2018-2-28 15:13 | 只看该作者
打开工程模板,在APP文件夹新建LED文件夹然后在keil中新建led.c与ked.h文件

使用特权

评论回复
31
chenqiang10|  楼主 | 2018-2-28 15:14 | 只看该作者
在led.h文件里面我们可以来定义一些宏,方便以后的移植。
#ifndef _led_h_
#define _led_h_
#include "stm32f4xx.h"

//关于引脚的宏
//R
#define LD3_PIN GPIO_Pin_14
#define LD3_GPIO_PORT GPIOB
#define LD3_GPIO_CLK RCC_AHB1Periph_GPIOB

//G
#define LD1_PIN GPIO_Pin_0
#define LD1_GPIO_PORT GPIOB
#define LD1_GPIO_CLK RCC_AHB1Periph_GPIOB

//B
#define LD2_PIN GPIO_Pin_7
#define LD2_GPIO_PORT GPIOB
#define LD2_GPIO_CLK RCC_AHB1Periph_GPIOB

#endif

使用特权

评论回复
32
chenqiang10|  楼主 | 2018-2-28 15:15 | 只看该作者
可以在led.h里面加入这些宏方便对led的亮灭控制。

//库函数操作法
#define ON  1
#define OFF 0

#define  LD1(a)    if(a) \
                        GPIO_SetBits(LD1_GPIO_PORT,LD1_PIN);\
                  else  \
                                                                        GPIO_ResetBits(LD1_GPIO_PORT,LD1_PIN)
#define  LD2(a)    if(a) \
                        GPIO_SetBits(LD2_GPIO_PORT,LD2_PIN);\
                  else  \
                                                                        GPIO_ResetBits(LD2_GPIO_PORT,LD2_PIN)
#define  LD3(a)    if(a) \
                        GPIO_SetBits(LD3_GPIO_PORT,LD3_PIN);\
                  else  \
                                                                        GPIO_ResetBits(LD3_GPIO_PORT,LD3_PIN)        

使用特权

评论回复
33
chenqiang10|  楼主 | 2018-2-28 15:16 | 只看该作者
同样也可以用寄存器的方法来控制LED的亮灭和翻转
//寄存器操作  
#define digitalHi(p,i)     {p->BSRRL=i;}  //输出高
#define digitalLo(p,i)     {p->BSRRH=i;}  //输出低
#define digitalToggle(p,i) {p->ODR ^=i;}  //状态翻转


#define LD1_TOGGLE     digitalToggle(LD1_GPIO_PORT,LD1_PIN)  //状态翻转
#define LD1_OFF        digitalL0(LD1_GPIO_PORT,LD1_PIN)      //关闭
#define LD1_ON         digitalHi(LD1_GPIO_PORT,LD1_PIN)      //打开

#define LD2_TOGGLE     digitalToggle(LD2_GPIO_PORT,LD2_PIN)
#define LD2_OFF        digitalL0(LD2_GPIO_PORT,LD2_PIN)
#define LD2_ON         digitalHi(LD2_GPIO_PORT,LD2_PIN)

#define LD3_TOGGLE     digitalToggle(LD3_GPIO_PORT,LD3_PIN)
#define LD3_OFF        digitalL0(LD3_GPIO_PORT,LD3_PIN)
#define LD3_ON         digitalHi(LD3_GPIO_PORT,LD3_PIN)  

使用特权

评论回复
34
chenqiang10|  楼主 | 2018-2-28 15:21 | 只看该作者
在led.c文件里面只需要对led管脚初始化即可。
#include "led.h"

void led_init()
{

  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd ( LD1_GPIO_CLK| LD2_GPIO_CLK|LD3_GPIO_CLK, ENABLE);
  GPIO_InitStructure.GPIO_Pin = LD1_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;   //输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_Init(LD1_GPIO_PORT, &GPIO_InitStructure);
        
        GPIO_InitStructure.GPIO_Pin = LD2_PIN;
        GPIO_Init(LD2_GPIO_PORT, &GPIO_InitStructure);
        
        GPIO_InitStructure.GPIO_Pin = LD3_PIN;
        GPIO_Init(LD3_GPIO_PORT, &GPIO_InitStructure);
        
        //熄灭所有LED
        GPIO_ResetBits(LD1_GPIO_PORT,LD1_PIN);
        GPIO_ResetBits(LD2_GPIO_PORT,LD2_PIN);
        GPIO_ResetBits(LD3_GPIO_PORT,LD3_PIN);

}

使用特权

评论回复
35
一路向北lm| | 2018-2-28 15:23 | 只看该作者
楼主分享的不错哦,**加油。

使用特权

评论回复
36
chenqiang10|  楼主 | 2018-2-28 15:27 | 只看该作者
在keil中往APP中添加led.c文件,这个大家都知道,我就啰嗦了哈


使用特权

评论回复
37
chenqiang10|  楼主 | 2018-2-28 15:28 | 只看该作者
当然对应的头文件也要添加进去(一对好兄弟,不能分开)

使用特权

评论回复
38
chenqiang10|  楼主 | 2018-2-28 15:53 | 只看该作者
最后就是主函数了 包含led.h 然后初始化led 就可以可控制了。

使用特权

评论回复
39
chenqiang10|  楼主 | 2018-2-28 15:55 | 只看该作者
代码烧录进去坐等结果,三个LED被点亮,成功,同时也证明了我们的工程没问题

使用特权

评论回复
40
chenqiang10|  楼主 | 2018-2-28 15:55 | 只看该作者
点亮三颗LED ,就到这里,我是用STM32L4+板卡作为实验,大家存在如有存在问题欢迎一起交流。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则