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

【STM8-SO8-DISCO】——3、IO测试,按键+点灯

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑 ( S* e7 Z* C- b  C
) V5 N& g, H, P" K3 w8 k. ^  L2 K
【STM8-SO8-DISCO】——3、IO测试,按键+点灯
$ z* S0 V6 r  D) e' ]
2 K+ r, F& u% n( Z本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297  |7 O; J5 }3 v" @+ [( M7 q
(出处: 意法半导体STM32/STM8技术社区)
! e' @* g- n; R% d# J7 N6 s
* Y/ K/ E9 L- l. S3 s% I从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。
% S2 u* }$ D) p" M 01.jpg $ V1 G- h0 D% K; \0 K/ F/ B9 B* p
( N) Y8 g8 }; f* j' I6 `6 I; i; d' O9 B

. }, G$ F( L# T  L' [0 e用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。
# i$ `, n2 H* B. d 02.jpg
4 r+ `7 [" l( T8 C
% P: C, |8 L/ N" v& PSTM8S001对应按键B1的IO为PC3/PC4/PC5+ [; g( @. B& i7 M# I& |
03.jpg ' E5 Y4 X" G  |: R0 B6 S) G
3 I# f9 Z0 E+ G3 n
从STM8S系列参考手册RM0016找到,IO对应5个寄存器% x2 O! k8 S: }$ B2 F2 I
11.jpg
5 }2 G3 Q* c0 ?7 z  j* }- p$ a: o) J+ r  j4 I# Z
输出数据寄存器、寄入数据寄存器$ e0 B; P$ Z0 _3 b# r$ D
12.jpg
$ p2 C; |5 n0 {/ H) n, L8 R; t' p& b- K, x; E$ m: z2 b
方向寄存器、控制寄存器1
4 O, Y5 j' `& s  s/ D/ I+ ^1 ] 13.jpg
+ z0 Q3 _& U+ s
' P/ m5 F7 A7 H. Y" q控制寄存器20 H5 Z; M9 N2 ^4 C; }- n' S
16.jpg
3 b) U. W  u( c- v; `' @
# t% m1 S/ ]: E9 Y$ g  `IO模式设置列表
7 ?$ t  [* m) q9 U 15.jpg ' ?% ?/ }4 P( c' r
; ~* U% H  j( f" ?* X
在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。7 z9 N  l4 l; ^
4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。
9 G  B1 q" o" Z/ x: C# h. z; C 14.jpg ; r/ \' f  k" _9 D+ h& l
" }( V/ a) I# y4 o4 ]8 F( \9 \
在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。! s4 D- V; o4 ~/ }, c, J0 T; z, x
21.jpg / N7 s4 x% S4 ]- U. I
# I- e7 W( J* P8 z/ S. V
用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。/ {9 T" l6 w0 B0 N, Q+ `8 D
22.jpg
3 w9 I$ s# v! O0 K9 x% c8 q  n1 h
7 v. n8 Z% @' u% B+ HGPIO_ReadInputPin()实际操作寄存器IDR
$ t8 l( U4 f1 C* G 23.jpg " ~; {1 y1 r9 [5 o: M' i
5 H% w/ {5 ?/ O
GPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR
. D4 Q; ~# J' h( C# {6 x 24.jpg
5 E) e, r; Q7 N4 X2 A/ t; N/ x$ t* P# H
编译、下载程序,加断点,Debug调试。/ ^) @" M/ ]. F% l* ]7 T
31.jpg
: ~& T+ w1 e/ a7 ^* j& C; S- R) _9 }2 R8 K
打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。
  G% `, J6 |% S. S) n$ o当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。9 k- T/ b2 i* G( v8 @5 |/ Q
32.jpg
. n" {9 \/ y- ^) W& E
: u6 h+ \6 i+ k% }1 X6 x当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。
# F' u1 @2 H8 p$ ~2 N4 [; e/ a' } 33.jpg . X. q" U+ y" R# n

  z5 v4 E0 E; x- ]0 g! I, k实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。* X, p+ z" x3 W: Z$ G8 b- k' ^& U
对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。
# J! S# y8 O: ?/ H" u3 K7 J' p6 _& n7 y! m1 E4 y" F& S
附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)$ K8 L8 u5 o; n. L! O; T
STM8S_StdPeriph_GPIO_IN.rar (258.14 KB, 下载次数: 24)
赞 收藏 1 评论7 发布时间:2019-2-18 00:53

举报

7个回答
STM1024 回答时间:2019-2-18 14:03:47
支持一下~
Kevin_G 回答时间:2019-2-19 11:39:51
支持一下
CC4 回答时间:2019-2-21 10:01:54
学习了,一直不会玩STM8
taiyangshendi1 回答时间:2019-2-27 19:32:55
我也直接用的工程模板
ml8866 回答时间:2019-3-17 20:09:10
谢谢分享!!!!
xujiantj 回答时间:2019-3-18 15:31:01
学习了,多谢分享
EdisonZheng-161 回答时间:2019-5-19 20:45:26
许欸额

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版