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

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

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑
  C6 A! J+ Q5 ~) s4 R* z% l$ y5 u9 U3 O7 n
【STM8-SO8-DISCO】——3、IO测试,按键+点灯
6 z1 ?3 z3 j# y* J& Z1 F( H9 F% p2 U# u+ c/ k3 |$ G
本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297! v  E: [4 Z, H* [  W% c
(出处: 意法半导体STM32/STM8技术社区)
( y: s8 c( `0 L5 N4 }) r: Z0 E- a/ b, x; K
从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。
5 |' r1 V: m# R1 z 01.jpg . z  ^% o$ _" T) w1 ^1 S* F
' \" _! e, G: |* {! [) K/ ^0 O* c( U

0 Q6 h1 |- z, F& |用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。
8 V  f! u' y' _( |& g* `% ? 02.jpg
. u9 ?/ L+ W( i, N% @- z/ I; k/ ]1 j
STM8S001对应按键B1的IO为PC3/PC4/PC5
+ S. _. g/ f! g/ v/ ? 03.jpg
4 u# V* m0 c" H/ L* k
: H+ J) D5 Z2 l从STM8S系列参考手册RM0016找到,IO对应5个寄存器
" H; W1 p9 }0 @; M5 k* ~ 11.jpg
2 V$ z+ H5 J% l# {- `+ g+ h. V* k! Y" X6 c( {4 i
输出数据寄存器、寄入数据寄存器
' C! N& @1 N4 m8 w 12.jpg
, A: `/ w' o7 `" x' e8 c, @3 j8 k, J) J8 w2 o/ R. T) z) ^7 Z+ C
方向寄存器、控制寄存器1) n0 N/ |. C: W! m
13.jpg
" ~! a# P  D2 m- j" N1 S  J0 u; n! N7 u7 |9 O6 ]3 T
控制寄存器2( b: f$ g9 x% V* Q0 A
16.jpg , m9 J- ]8 D( L  W( |: T# B+ ^
4 m; C5 M/ n/ g  D0 e
IO模式设置列表2 `& d4 S+ E3 t3 h
15.jpg
! n  s  u" ~$ k9 {3 S5 I: {* e( x
6 e6 e/ f$ v3 G$ o( e在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。  t; Y. C1 D7 t% F( U% x
4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。
- |0 W0 g( o7 z, d8 R8 Z' b 14.jpg / Y! x2 L; c6 o+ Y0 A& ]' ]  ^2 M
9 {( z; X0 `0 I8 T' c3 A/ c
在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。
. e' }4 b* P; [3 \) O 21.jpg
  Z$ _2 M& ~2 q2 h" ^/ i% s, T$ \. D' C' a3 X# [' p
用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。
+ U% Z* Z) h+ ~3 j 22.jpg 2 k4 ]. A+ V  _" _+ s, H+ c9 w6 k
1 @0 _+ C' A4 t- k0 ~
GPIO_ReadInputPin()实际操作寄存器IDR6 k" Y* x. o* o, L* \3 E
23.jpg
  |- F& }) e8 }2 u4 L" S6 r0 B* f1 s0 h$ X& j4 T3 p
GPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR. `' s" K" N; D
24.jpg
! J9 c7 r0 G0 Y: \) {5 a/ D+ \: L" g# |
编译、下载程序,加断点,Debug调试。
( W2 `' X0 J' }7 L 31.jpg
  _9 V3 c" _6 m: d3 @9 M1 Q4 p, S- K# M* M
打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。
: K8 s3 s/ O/ _3 r6 w当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。
, ~2 E( ?0 R, P( u. W, T 32.jpg
* ]  n+ n, F$ i& A" q4 A/ m1 ~) s7 ]
当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。
: A; d7 I. v' g  o. p 33.jpg % C+ G, l9 T4 F1 S. k
; S8 j$ m. M1 k( C. {0 U# j
实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。7 y$ V. @1 H7 T
对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。
9 H% F3 ^# R. c/ E! b+ U4 N) f+ ?4 I  m
附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)
2 s+ P- P6 s/ W% g 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 手机版