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

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

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑
, E" P6 P/ H% P1 u7 S8 k6 N6 G/ r* h
【STM8-SO8-DISCO】——3、IO测试,按键+点灯
3 L. F4 W/ ~/ _% @) O
4 u% m  L( U3 p" V9 H: @5 V本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297
4 D+ f9 v# ]. B+ T(出处: 意法半导体STM32/STM8技术社区)- e! t( o" S$ P* o$ ^6 Y5 I
' I$ {3 s6 ~# {  }3 o* ]2 q
从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。( [4 G* A, P8 a
01.jpg * F5 d9 |, {4 u& \) q# ~& E

& z4 Y2 w& S8 z; i: m: }
2 _! L* C' g1 }0 u, P用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。, J$ ~6 t9 R5 P5 ^% O
02.jpg + L  {6 @- W0 [" R

, G7 J- L8 i* S, N3 VSTM8S001对应按键B1的IO为PC3/PC4/PC5" }* e: l( m0 |: E/ a( [% W
03.jpg
. R3 [) S2 U! u* m5 a/ n3 F- I# i/ D% L7 p! M3 b9 w+ g8 `1 }- q
从STM8S系列参考手册RM0016找到,IO对应5个寄存器. p" ]" E( x9 v
11.jpg
6 n/ E7 }1 H" `' d
9 x* E. H( P# [输出数据寄存器、寄入数据寄存器" m& `# E* P, o* ]
12.jpg
. Y/ \5 t9 b% v# {6 t4 \, J5 H7 `; K/ w  w" X
方向寄存器、控制寄存器1
' [3 f# e: b+ ^) E6 F! q& y) Z/ v 13.jpg 0 A' T5 \, i+ K2 Q1 ]2 M' o3 Y
. |8 }  O/ N4 s- `0 L
控制寄存器2
5 q  r; M6 X" r2 {; k 16.jpg 2 B3 M. K# i" H: w  [- R" ]* _

8 A+ c+ Y  d1 |" YIO模式设置列表# R% i4 N* V$ }) R2 E
15.jpg ) \2 C7 U' u# Z7 k& A* [
8 v% j$ u  ?5 ]$ a1 Y6 v1 i" o9 \" M
在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。  q+ _' t& `2 `2 A- t
4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。
5 |  N% r) f: r/ n6 Z: K 14.jpg / W( J, u- ]; K$ y

/ N1 e& H- Y& k) t( K2 p, \在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。
# J# R3 k8 K3 Y9 z8 ^ 21.jpg , i: ^" k+ j' j& K' W  b( w+ c

8 i; y! Y" @) u/ L( {用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。2 ^5 Q* \3 j+ V
22.jpg , H6 n2 y/ x; C9 H. d

' n0 K, n0 E' `GPIO_ReadInputPin()实际操作寄存器IDR* K# B1 G) k, B( F+ ]! E# p& k8 \
23.jpg * \, z2 h1 F1 J2 Z3 E+ i
; r# F4 G$ o+ y6 P; F! a& C# C) y
GPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR
0 J6 r# e& G, S# Q 24.jpg 4 C6 I5 I0 p  `2 `

, p* y3 t  x' y, D8 ^2 S1 ~' z7 \4 H编译、下载程序,加断点,Debug调试。
" a3 p0 y& D& _0 p' q. y 31.jpg
! u1 d5 V& p/ `
* n  K3 V& d1 ]. R5 `: Y4 k打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。& W* O* {. r7 n$ C& {
当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。
1 f) M% R+ E8 X# n 32.jpg 2 c5 Z. `' R6 b& X& U

) m9 x- a- C* L: [9 @- r当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。
; J* k# k1 m0 N# ]" E, Z 33.jpg 2 b; p0 o% ?# a2 Y1 [: _

4 J, k: X3 X# l, _' k  y6 |# I* b实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。/ K& m8 Q& B7 X: N6 t
对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。
( d! _7 K) v) a. Y- ?
  o* F4 [! e, H1 w附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)5 z( L. [0 M; \, d0 w
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版