STM8S003引脚坑(开发过的人都知道)
实验目的 :控制stm8s003核心板进行简单的IO输入输出、中断、窗口看门狗,全休眠功能
0.先看手册
PB4和PB5引脚因为内部没有上拉电阻,所以不能输出高电平只能浮空输入。浮空输入也有问题 因为它只能检测到引脚是低电平还是非低电平,不能检测是高电平还是低电平。这也就导致了把此引脚作为外部中断的触发引脚不能是上升沿,只能是下降沿,不过不同的板子有的下降沿可以触发有的不能触发。可靠的方案还是换引脚或者加个上拉电阻吧。(╯‵□′)╯︵┻━┻
1.普通的IO输入输出
GPIO_Init(GPIOC, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST); /* 配置GPIC PIN3脚为推挽输出 */
GPIO_WriteHigh(GPIOC, GPIO_PIN_3); /*引脚拉高 */
2.中断 (关总中断 --设置–打开中断)
GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_IN_PU_IT); /* 配置GPIA PIN3脚为外部中断脚 /
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOA,EXTI_SENSITIVITY_FALL_ONLY);/ 配置外部中断 下降沿*/
EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY); /*设置高级中断触发方式 */
中断是上面两个函数一起使用才会生效。
3.窗口看门狗 WWDG
因为看门狗和时钟往往有着密不可分的关系,首先时钟要先确定
这里使用的内部高速的16Mhz时钟 4分频为4Mhz.
void Clk_Init(void)
{
CLK_DeInit();//复位时钟寄存器
CLK_HSICmd(ENABLE);//使能内部高速时钟
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);//配置内部高速时钟(时钟分频器:4分频),系统时钟4MHz
CLK_ClockSecuritySystemEnable();//开启时钟安全系统
}
因为是要是用在halt mode下的唤醒功能 所以不能直接使用独立看门狗。窗口看门狗相较于之前使用的独立看门狗就显得(矫情)许多。因为
void MWWDG_Init(void)
{
/* WWDG configuration: WWDG is clocked by SYSCLK = 4MHz */
/* Watchdog Window = (COUNTER_INIT - 63) * 1 step
= 64 * (12288 / 4Mhz)
= 196.6 ms
/
/ Non Allowed Window = (COUNTER_INIT - WINDOW_VALUE) * 1 step
= 8 * 1 step = 8 * (12288 / 4Mhz) = 24.576 ms
*/
WWDG_Init(COUNTER_INIT, WINDOW_VALUE);//COUNTERINIT = 0x7f,WINDOW = 0x77
}
窗口看门狗就这个么一条初始化语句,但是超时的时间和喂狗的最短时间都是可以计算出来的。上面代码显示是看门狗超时时间为196.6ms,喂狗时间则要大于24.576ms 小于196.6ms之间。
4.Halt mode是最省电的模式,进入之前要将外设能关闭的都关闭,最好再喂一次购,中断不要关,因为要用中断来唤醒。
halt();//进入停机模式
//EXTI_DeInit (); /* 恢复中断的所有设置 */
//System_Init();//系统初始化函数
这样
STM8S003引脚坑(开发过的人都知道)相关推荐
- 敏捷开发: 每个人都必须成为通才吗?
传统的开发团队通常按角色就行分工, 开发人员只管开发, 测试人员只管测试, 在自己的职责之外的事, 要么是看不见, 要么是觉得不是我的活,我不用去管,做好做坏和我没有关系. 而敏捷软件开发恰恰相反, ...
- 云闪付小程序吃坑,太坑了,整个人都要烧了,找遍全网都找不到这么详细的开发资料了
因为公司需要让研究云闪付小程序,一开始以为像微信小程序一样.打包后基本能改主体类名放各个平台上跑,然后在研究中发现云闪付官方开发者工具难用的一匹,简直找不出哪个IDE能与此匹敌了.首先找遍全网也查不到 ...
- 软件开发有许多人都是MBTI 职业性格的ISTP类型,如果你就是这种型,恭喜你,请继续走下去...
不论你是一个年轻人试图寻找你在世界的位置,或者不那么年轻的成人正在摸索职业方向,你都需要真正了解自己的人格特质,因为它会深深的左右你在不同职业上成功的机率. 唯有真正发现什么对你是重要的,并且知道自己 ...
- 这个Spring循环依赖的坑,90%以上的人都不知道
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Mythsman 原文:https://blog.myths ...
- 这个 Spring 循环依赖的坑,90% 以上的人都不知道
点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:Mythsman blog.mythsman.com/post/5d838c7c2d ...
- 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市
今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光和不 ...
- excel删除空行_Excel里99.9%的人都踩过的坑,早看早避开!
本文作者丨可可(小 E 背后的小仙女) 本文由「秋叶 Excel」原创发布 如需转载,请在公众号发送关键词「转载」查看说明 2019 年上班第一天感觉怎么样呢? 望着满屏幕铺天盖地的表格,我只能摸摸自 ...
- Computer:少儿编程—每个人都应该学习编程,它能教你如何思考—编程入门的简介(编程语言的特点种类开发工具对比人类语言)、编程应用、编程意义之详细攻略
Computer:少儿编程-每个人都应该学习编程,它能教你如何思考-编程入门的简介(编程语言的特点&种类&开发工具&对比人类语言).编程应用.编程意义之详细攻略 导读:乔布斯说 ...
- 有时间同情渣男傻女,不如想想人都是怎么被臆想出来的爱情给坑了
第184原创 文|明玥 1 整个周末,整个互联网社交环境都被某大叔男明星的丑闻弄得乌烟瘴气. 这么恶心的瓜,我原本并不想吃. 因为细究一下,你就会发现,这个里面没有谁是值得站的,每个人都经不起推敲. ...
- C语言开发单片机为什么大多数都采用全局变量的形式?
一个代码狗,成长经历都是莫名相似的. 你应该和我有类似的经历,虽然功能都能做出来,但是总觉得自己代码缺了点什么. 就是怎么写都觉得不够完美,感觉代码的水平介于专业和不专业之间. 自己的认知水平也非常有 ...
最新文章
- 【题解】Luogu P2730 魔板
- 移动设备将成为2014年最大的安全风险
- ppt科研绘图 图形布尔运算
- php 卡号算法,PHP实现通过Luhn算法校验信用卡卡号是否有效_PHP
- android textview动态设置,android – 如何动态设置文本到TextView?
- cesium polygon 悬浮在半空中
- ASP VBScript 函数速查表
- sqlplus / as sysdba 提示权限不足(ORA-01031)问题处理
- CentOs基础操作指令(用户管理、组管理)
- jaxp与dom4j遍历xml树
- Cat 6 的网线确实不好做
- Redis入门指南(三)
- dsp2812 寄存器总线
- win10证书服务器不可用怎么办,四种方法解决Win10专业版RPC服务器不可用的问题...
- python excel 单元格换行_python excel单元格如何换行
- 第二十章 齐桓公大婚冤家又聚首 宋闵公嘲笑重臣丢君命(
- clientX,offsetX,pageX,screenX的异同以Chrome浏览器测试
- 搞笑--为毛我顶多是个包工头
- python读excel中数据画图_python读取excel数据并且画图的实现示例
- 2012多校联盟第二场1009 还是BFS
热门文章
- Android stdio调试程序闪退或者报错:xxx keeps stopping解决方案
- mysql can t drop_异常之 mysql Can't drop database 'drop_database'; database doesn't exist
- 计算2015年4月6日是一年中的第几星期
- matlab中syms空间问题
- 正则表达式在线测试 | 菜鸟工具
- 策略路由(Policy-Based-Route)
- OAuth2.0系列四:OAuth2.0简化模式
- word2vec源码详解
- 行频、场频与分辨率、刷新率
- KETTLE各个版本下载地址