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

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

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑
6 z( n' j3 ?9 z5 d9 _# g% _
: o0 P3 w& j; s, p" G# F5 m6 ?* i【STM8-SO8-DISCO】——3、IO测试,按键+点灯  L, A2 f( B9 O# `! f, C

4 I2 u, ^2 B# d+ A: [' R本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297
! h# Z" Z6 c' B  g5 d# v' F* j1 h( N(出处: 意法半导体STM32/STM8技术社区)
5 [3 G7 ~" a9 E& i. a7 R2 M
" n9 k; Y. }. A8 v9 Y7 @1 W从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。* U0 s+ e$ z3 f; P2 g: D
01.jpg
. a" T5 d2 e! ^8 N- _4 u0 D
. Q- i; q# q; r! P" W2 x
7 D6 u' d5 G+ I* r# N7 y: G6 }用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。; N1 b5 l: g. x9 ]6 x1 a* X" h
02.jpg
& _6 }! |  r5 m& a+ Q9 h5 h/ M$ O5 @5 G; H0 [( ~! s
STM8S001对应按键B1的IO为PC3/PC4/PC57 l6 y- \% U' {. m) e
03.jpg . t" B2 x! |3 t& B8 y
% d$ H, m$ C" X6 a% s
从STM8S系列参考手册RM0016找到,IO对应5个寄存器
. e  {' b& u. [) a, Z7 ? 11.jpg
$ i2 @; k* [" K  A
; X5 P& ^7 x& t7 J" F7 r5 \输出数据寄存器、寄入数据寄存器7 m' K# J& Z- f3 r; l7 z* d
12.jpg
2 v/ g" W+ C+ t) {0 s) k
8 R8 @. t9 d8 ?4 t9 a( p: U方向寄存器、控制寄存器1
0 V+ K  \1 n9 E  b6 k 13.jpg
: t2 j. v6 u, F# v, p
, u" Y3 i3 V1 Q- p控制寄存器2
' Y5 L5 z4 O* _  a; \4 z: e 16.jpg
( Q, C) I/ _/ ?$ n# k; z
% m: w6 t) `7 }2 J- aIO模式设置列表
2 b  d: r0 P/ A) i) W 15.jpg
: S9 e* j) ^6 v- _
% {& b' Y# H* G! o6 Z5 r在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。: y0 q: j' U* _1 ?- P' M- N. a
4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。
8 Z2 P, T' z* O8 n. K" C 14.jpg
. k# J/ k4 o3 H8 H9 w" Y5 r, m9 \2 ~+ h/ H
在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。
3 [! t# D. t1 k; J& K- P+ T( U 21.jpg
# }: S0 g) O2 ?9 J5 T6 M' E+ i. Q5 F# a! S) R
用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。
1 j4 B% R  h! W& i; \8 ] 22.jpg
' W' L+ L& e9 i2 h; F4 E' q1 G+ `- W: j3 x4 z
GPIO_ReadInputPin()实际操作寄存器IDR* t' C0 o. ^- U4 k% a- W. `' W
23.jpg
- {- O6 c" r, L( l* J" D- |* X# `6 r# h& ^& N, P
GPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR* O8 k  q: i) C9 a" \3 M
24.jpg ; C# r% H' I0 `( h0 l
, k! M; D+ C$ |- t- t; i
编译、下载程序,加断点,Debug调试。
, U; W4 p9 R3 R* m8 }* M" S 31.jpg
+ w$ M/ c$ F+ w
" ]1 s2 j' H( x& w7 b) K, F打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。
) S2 f+ v8 D3 f' e当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。, q/ ^( i$ [# i
32.jpg
! C& S3 T4 U. p) a- l. \* V9 ^, V% y2 J5 Z8 p
当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。: q' M' l2 G8 V4 Y) O& P
33.jpg ) }) Y$ M1 F# \

. P5 {9 R- t' G9 F7 }实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。0 _$ H- K2 w% S  t: H" S" Z- a
对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。
1 H/ R, p% k! J+ x. C4 {! F
" E. r$ {) Y1 I7 {. r! C/ o/ g. x3 h附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)
8 S" ]2 l; Y, q% H: | 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 手机版