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

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

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑
# K' j. j' [6 M, y' W
5 h& H8 V: p$ E! m' j【STM8-SO8-DISCO】——3、IO测试,按键+点灯/ C- r! y$ f3 P  o1 c9 o. f* n

5 S3 T( C6 c' b0 B( D3 c6 ^本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=3072975 g1 \7 ^7 |6 {5 n# Q" A
(出处: 意法半导体STM32/STM8技术社区): t0 h( w# a8 Y( h& y8 O
$ q4 u7 i, E: P0 M+ J- W
从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。% U$ p6 m7 ], N" P+ z/ m
01.jpg   o6 ]0 o2 E+ h

9 Q$ F6 M5 V. H1 ~. I1 p( h" z4 f5 |; G8 p
用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。
3 b1 o6 Q2 x, b& u$ ^5 c* B# E7 q 02.jpg
& J& C3 z' T6 e, ^  e
* d5 M7 M$ I! G- o4 [STM8S001对应按键B1的IO为PC3/PC4/PC5
6 Z6 Q3 ~+ z, j$ \9 o5 |9 B 03.jpg
" [# D( X6 H) \6 E4 K
7 l/ F& l- z" l( O3 R从STM8S系列参考手册RM0016找到,IO对应5个寄存器
8 U+ \7 h# k) W- A, D$ @4 |; K9 L8 p 11.jpg   z, s1 \! J' q6 I& I
0 Y9 N# Q3 q9 ]
输出数据寄存器、寄入数据寄存器: B5 r9 q/ Z/ N- l/ d5 C
12.jpg
# C' ]7 u' Z/ p7 ]' d$ Z' o: C3 A0 I) Q
方向寄存器、控制寄存器1
8 f# j$ ]2 G6 ^4 Q5 U 13.jpg , S9 X6 {6 n# R: B2 S6 T3 B

. c0 D( u7 S( Y! w- h# Z控制寄存器2
$ Q" U3 Q: A  m) V* p 16.jpg
4 N3 e0 m- u: m% k% @. `, }1 Q' Y" f3 j$ e; L5 M6 q
IO模式设置列表4 G8 q$ D- I& _- d0 b1 o
15.jpg - j& R9 F' K. \0 J" H
. Y3 l  i! r$ A2 h! w7 [, I5 l, g
在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。
) I. D; D+ X' h' T' l8 t+ ^4 V5 Q4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。/ D- o, y+ R% P! r" S7 D. }
14.jpg
8 R! ^$ T, r1 |
6 o. k. G8 a  z" K在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。+ H2 n" r6 ]7 Y. C4 k0 F
21.jpg ! R: u  w6 y. X7 P

' U- W( A% [4 T- `5 W( M- Z- E) N用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。
9 J. Y" D. \( V8 ^+ S! h 22.jpg 9 Q4 h5 y  x5 x, s0 [: k1 ?
) A5 T- V) ?: g. j5 {! Z9 f* j
GPIO_ReadInputPin()实际操作寄存器IDR
0 D9 f( n. q5 R# \/ h& \& X 23.jpg
2 ^! @+ n; i) O1 q5 l) h( Q
& M7 G' B0 t. \6 e0 iGPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR
) h2 Z2 b2 Y" w6 p( } 24.jpg , g2 W1 S: _% V/ |( B5 g
3 p! U: l; g6 q  K
编译、下载程序,加断点,Debug调试。- b8 ^& \9 i8 o
31.jpg $ t  t* u0 y6 ~% F$ G) {4 Q

6 j/ ^9 M- _1 z0 `$ b; M3 D打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。
9 G: s( S" s' z9 R当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。) m- y6 m( a* e' a
32.jpg
, d7 ^& a5 p3 q* I" [& f- i4 h. V
" b1 ^" p  }: P/ {9 V% o当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。
& A. s7 s1 Y- \: G) i 33.jpg
# h5 t' N  Y% v* A1 s
3 w+ |4 _' H- F' F( q$ c实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。/ W5 M' r6 |  {" W# k2 s
对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。
2 q- n) K2 ^2 ?1 s( M3 k/ `
8 R4 t' Z) a+ _) R  C9 ?9 ^附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)8 h9 z- W, Q& d. T$ E2 V8 c% Z
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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版