收藏官网首页
查看: 52325|回复: 30

[资料] STM32版Gokit零基础开发之GPIO

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
跳转到指定楼层
楼主
发表于 2016-10-25 18:52:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
本帖最后由 bigfanofloT 于 2016-10-25 19:20 编辑

流水灯一直是入门学习微控制器最简单、最经典的例子(如同编程语言的“Hello World!”), 体现了微控制器最基本的功能:控制引脚输出高低电平。
1.GPIO 介绍
GPIO(General PurposeInput Output)通用输入输出,是 STM32 的一种外设,与大部分芯片引脚直接挂钩,STM32F103芯片总共有 7 个 GPIO 外设,定义为 GPIOA、 GPIOB、 GPIOC、 GPIOD、 GPIOE、 GPIOF 以及GPIOG, 每个 GPIO 外设有 16 个引脚,定义为 PA0..PA15、 PB0..PB15 等等。GPIO 最简单的功能是输出高低电平, GPIO 还可以被设置为输入功能, 用于读取按键等输入信号。之前也介绍到,很多高级外设也有功能引脚,并且是与GPIO 共用的, 具体引脚功能可以通过软件编程设置对应的寄存器内容实现的,STM32F10x 芯片 GPIO 的基本结构见图:

其中:
保护二极管用于防止因为引脚外部输入电压过高或过低烧坏芯片,但这种保护也是有限的。
上半部分属于引脚输入功能,通过一个电阻和一个开关(可以通过寄存器控制开关状态)可以把输入线拉高或者拉低。
下半部分是引脚输出功能,通过一个PMOS 管和一个NMOS管组合而成一个反相器驱动输出。对于普通的引脚电平控制,根据需要设置置位或者复位寄存器的值,这两个寄存器的值会改变输出数据寄存器值,通过输出控制电路驱动反相器从而改变引脚的状态。
每个GPIO外设都有7个独立的寄存器,为实现不同工作条件要求,GPIO有8种工作模式,通过配置GPIOx_CRL或GPIOx_CRH 寄存器可以控制,常用的几种模式如下:
输入浮空:该模式也是 STM32 复位之后默认模式。 浮空输入模式是相对与上拉或者下拉输入模式,浮空就是不上拉也不下拉。
输入上拉:输入上拉模式就是在浮空输入模式基础上使能输入电路中的上拉开关,该开关由输出数据寄存器(GPIOx_ODR)引脚对应位设置为 1 来使能。
输入下拉:输入下拉模式也是在浮空输入模式基础上使能了输入电路中的下拉开关,该开关由输出数据寄存器(GPIOx_ODR)引脚对应位设置为 0 来使能。
模拟输入:当 STM32 需要进行 AD(模数)转换时,需要把引脚设置为模拟输入模式,该模式需要配合ADC外设使用,GPIO完全只是一个通路,最后信号流入到 AD 转换电路中。
开漏通用输出:通用输出模式就是做为普通用途的输出模式,比如简单地控制引脚输出高低电平。
推挽通用输出:推挽输出与开漏输出原理理解都是差不多。
推挽复用功能输出:一个 I/O 引脚可以做为普通的 IO 接口,还可以做为其他设的特殊功能引脚,有些引脚可能有 4、5种不同功能,这种现象就叫做复用,引脚复用为特殊功能引脚,那引脚状态就由该外设决定。
2.STM32CubeMX 生成工程
STM32CubeMX 可以为我们提供很大的便利,配合 HAL 库使用可以提高工作效率。根据STM32底板 gokitV2.1原理图,4个LED分别连接到了STM32的引脚PB1、PB11、P14、PB15。我们将GPIO配置成推免输出模式,GPIO输出高电平点亮LED,低电平则LED熄灭。
STM32CubeMX具体配置如下:










工程文件: GokitDemo1_LED.zip (8.07 MB, 下载次数: 589)
有视频有真相:
STM32CubeMX生成的报告: GokitDemo1_LED.pdf (127.99 KB, 下载次数: 95)






1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
推荐
 楼主| 发表于 2017-4-8 16:54:15 | 只看该作者
Seasonic 发表于 2017-4-7 22:36
我的按教程一步步走完之后没有生成mxcontants.h文件,请问是怎么回事儿?

the new version of STM32CubeMX don't use mxcontants.h file anymore,it uses the " main.h " file instead.

点评

Thank you,  详情 回复 发表于 2017-4-8 22:13
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
推荐
发表于 2016-11-9 19:46:50 | 只看该作者
bigfanofloT 发表于 2016-11-9 17:29
可以啊,用串口烧录固件也可以

谢谢!为什么版主您还不答复学渣我那个关于怎么定义机智云STM32F103C8T6板子全部IO设置为输出的问题?

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
推荐
 楼主| 发表于 2016-11-8 12:30:56 | 只看该作者
tianzuoan 发表于 2016-11-8 08:49
哦,对了,怎么知道板子上哪个usb借口是下载程序?因为有两个usb。。另外一个usb是不是电源借口 ...

丝印为USB TO UART的可以下载程序
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
板凳
 楼主| 发表于 2016-10-25 22:35:39 | 只看该作者
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

12

主题

55

帖子

712

积分

高级会员

Rank: 4

积分
712
地板
发表于 2016-10-28 16:05:15 | 只看该作者
楼主加上和Gagent固件通信的例程就好啊?

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
5#
 楼主| 发表于 2016-10-28 16:27:17 | 只看该作者
创梦 发表于 2016-10-28 16:05
楼主加上和Gagent固件通信的例程就好啊?

见其他教程
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

1

主题

20

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
6#
发表于 2016-11-3 10:40:38 | 只看该作者
mxconstants.h是自动生成的还是自己写的。。。我生成的里里面没有这个。

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
7#
 楼主| 发表于 2016-11-3 13:12:07 | 只看该作者
校园创客福利
狂龙治中 发表于 2016-11-3 10:40
mxconstants.h是自动生成的还是自己写的。。。我生成的里里面没有这个。


自动生成的,在这里

1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

1

主题

20

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
8#
发表于 2016-11-4 08:31:29 | 只看该作者
bigfanofloT 发表于 2016-11-3 13:12
自动生成的,在这里

没有啊0.0

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
9#
 楼主| 发表于 2016-11-4 09:19:36 | 只看该作者

第5张图那里有个user lable.那里需要填写的
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
10#
发表于 2016-11-5 16:17:17 | 只看该作者
用ST-Link可以烧写程序给机智云的STM32吗?需要连接哪几根引脚线的?

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
11#
 楼主| 发表于 2016-11-5 17:43:16 | 只看该作者
tianzuoan 发表于 2016-11-5 16:17
用ST-Link可以烧写程序给机智云的STM32吗?需要连接哪几根引脚线的?

底部有丝印,用SWD接口,3根线,GND,CLK,DIO
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
12#
发表于 2016-11-5 17:51:26 | 只看该作者
免费使用STM32、APP自动代码生成工具
while循环里面LED4 _toggle() Hal_delay(200)..........是不是等同LED4 0N(), Hal_delay(200),LED4 OFF()

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
13#
发表于 2016-11-5 17:52:53 | 只看该作者
LED4 T0ggle();HAL_Delay(200)是不是等同LED4 ON();Hal_delay(200);LED4 0FF()?

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
14#
发表于 2016-11-5 18:36:00 | 只看该作者
bigfanofloT 发表于 2016-11-5 17:43
底部有丝印,用SWD接口,3根线,GND,CLK,DIO

谢谢!!!!!!!!!!!!!!!!!!!!!!!

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
15#
发表于 2016-11-8 08:46:44 | 只看该作者
STM32F103用什么软件烧写的?版主可不可上传?还有具体的烧写引脚接线能不能指导一下?

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
16#
发表于 2016-11-8 08:49:57 | 只看该作者
哦,对了,怎么知道板子上哪个usb借口是下载程序?因为有两个usb。。另外一个usb是不是电源借口

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
18#
发表于 2016-11-8 13:55:03 | 只看该作者
汉枫LPB120模块
bigfanofloT 发表于 2016-11-8 12:30
丝印为USB TO UART的可以下载程序

谢谢!!!!!!!!!!!!!!!!!!!!

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
19#
发表于 2016-11-9 14:45:30 | 只看该作者
不设置可否?!!!!!!!!!

截图未命名333.jpg (181.56 KB, 下载次数: 2217)

截图未命名333.jpg

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
20#
 楼主| 发表于 2016-11-9 17:29:35 | 只看该作者
tianzuoan 发表于 2016-11-9 14:45
不设置可否?!!!!!!!!!

可以啊,用串口烧录固件也可以
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表