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

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

[复制链接]
七哥 发布时间:2019-2-18 00:53
本帖最后由 toofree 于 2019-2-19 01:16 编辑

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

本贴所用工程模板参考,【STM8-SO8-DISCO】——2、简单粗暴建工程模板https://www.stmcu.org.cn/module/f ... 9341&fromuid=307297
(出处: 意法半导体STM32/STM8技术社区)

从户手册中原理图来看,按键B1和LED灯LD1都是高电平有效。
01.jpg


用户手册中显示,STM8S001对应LD1的IO为PA3/PB5。
02.jpg

STM8S001对应按键B1的IO为PC3/PC4/PC5
03.jpg

从STM8S系列参考手册RM0016找到,IO对应5个寄存器
11.jpg

输出数据寄存器、寄入数据寄存器
12.jpg

方向寄存器、控制寄存器1
13.jpg

控制寄存器2
16.jpg

IO模式设置列表
15.jpg

在函数库中IO械宏定义为12种情况,分别对应4种输入模式,8种输出模式。
4种输出模式为浮空/上拉、中断/IO的组合情况;8种输出模式是推挽/OD、快速/慢速、默认高/低电平的组合情况。
14.jpg

在“main.c”中开头,添加LED、KEY宏定义。主函数“main()”中,设置IO模式。主循环中通过判断KEY的状态,来控制输出对应LED状态。
21.jpg

用到的几个函数也都比较简单。GPIO_Init(),设置IO工作模式,实际操作寄存器ODR、DDR、CR1、CR2。
22.jpg

GPIO_ReadInputPin()实际操作寄存器IDR
23.jpg

GPIO_WriteHigh()、GPIO_WriteLow()操作寄存器ODR
24.jpg

编译、下载程序,加断点,Debug调试。
31.jpg

打开寄存器观察窗口,显示PA和PC相关寄存器,IAR观察寄存器时需要程序停止,不停的话不会随时更新。
当B1不按时,PC_IDR3/4/5为0,PA_ODR3为0。
32.jpg

当B1按下时,PC_IDR3/4/5为1,PA_ODR3为1。
33.jpg

实验现象,按下B1,LD1点亮;抬起B1,LD1熄灭。
对STM8S001的IO基本输入、输出功能测试完成,达到预期目标。

附上程序工程:(20190219工程有更新,之前上传的版本有误,不是工程模板生成的)
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 手机版