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

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

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑
4 p/ w0 |% Q: V4 U( t# h+ Y1 w- s
0 Y+ k8 w! ?1 f% l0 @% S: s& o【STM8-SO8-DISCO】——3、IO测试,按键+点灯
* p% H/ `: ~- W2 H1 g4 p9 c
8 a' R+ Q9 |( E本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297- i6 G& c1 h& O" o+ F
(出处: 意法半导体STM32/STM8技术社区)
' G, R  H0 L  b1 J0 B3 e
$ y" F# t  c$ \9 v3 v* F  x从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。
) u/ D! e# v, Y  i8 T! g" c7 R2 k 01.jpg / `+ o7 b1 i3 L
9 U2 b) X7 B9 e  f0 G
  Q, [- m( K8 o: F
用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。
+ X/ Q& c# o# u0 K3 A 02.jpg - F$ M# v8 }) z  P4 M  T& o
# s4 w  f4 k5 V, \
STM8S001对应按键B1的IO为PC3/PC4/PC5, W! y6 A3 M% @2 R
03.jpg
$ F) M( U+ o6 q/ {# g1 B* ~' a2 I- q5 h- Z+ T( X
从STM8S系列参考手册RM0016找到,IO对应5个寄存器
# B- x2 v! P" K 11.jpg 3 ?1 d1 Y4 f  P3 R1 m. q

7 t1 p5 @% i, H7 b) t8 ]( o输出数据寄存器、寄入数据寄存器8 t* C9 V$ k. ~) ?4 V3 r
12.jpg 8 j: v/ T3 w; x" J
& d0 }6 M* P4 |2 T" \) U5 `
方向寄存器、控制寄存器1
  o# e# j4 J/ c3 l 13.jpg
- t2 \3 [5 @1 n1 x6 Z' t+ B% d) @6 g1 U$ n
控制寄存器24 M3 e. f6 u6 N' _! n- c
16.jpg   {! @, l1 k4 T+ Y; {

% e1 Z5 L* y5 D/ f8 u; k) o7 CIO模式设置列表
# Z* R  u8 R+ |  b& |- ^ 15.jpg
) T+ C* y, y6 ]+ ]; G: n3 X- \
; v: {( f/ a  \& S' _2 o6 k+ J在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。4 W2 Z% [( q) q5 ^  W! x4 ]2 x0 l
4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。: w4 ~9 q: t, P3 I' |1 U* _! o
14.jpg
; x: T) k% X! R* |6 X# U  ]! [5 z4 X; l6 a* o- D
在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。
1 m0 y$ g$ t7 B0 g) G 21.jpg % O& d2 {/ T9 A- E/ ?( q4 i. @+ E5 m
4 T7 [( Y* R2 ]$ f+ @
用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。& Z/ q6 f; ~* |) z
22.jpg
( E% O6 ^# c8 q  p% g9 o' B9 g7 m, @: W  a9 V
GPIO_ReadInputPin()实际操作寄存器IDR
2 N, [9 R9 u5 Y- ~* e/ d 23.jpg
: Y! Y( L) `! L7 r$ [
. o  X! p% {! r; K; z( `2 @, xGPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR6 c+ ~' c5 m# }2 ?% ~  p
24.jpg 1 _9 C) X$ }7 y' x+ \

! j: X; x/ S& N: {& O2 P& |1 J! e& p编译、下载程序,加断点,Debug调试。
6 z8 Q# L, x$ V4 \/ Y) } 31.jpg # i' Y- {, E% w9 d8 ~$ c* O

( m+ e  r; i% g* D; l' k打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。" Q  J0 h; c/ Q+ ~' Q9 h
当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。
! @- n9 {% k0 E6 i( @) s1 F$ z 32.jpg
3 K* W  x; t/ i' ?; x* H8 E" }* d) x' L1 q% |
当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。$ @- U; m& J& J9 c
33.jpg 0 i$ F8 b4 ~( R

- m$ b0 ]7 F' O实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。
8 N, p5 d) p; [$ m2 j1 `$ |; W4 S对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。4 ^6 r! _9 w% O

: m9 ~* r+ ]$ K附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)
! h7 a8 f3 b8 r4 d. k: ^+ P$ n 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 手机版