实验目的 :控制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引脚坑(开发过的人都知道)相关推荐

  1. 敏捷开发: 每个人都必须成为通才吗?

    传统的开发团队通常按角色就行分工, 开发人员只管开发, 测试人员只管测试, 在自己的职责之外的事, 要么是看不见, 要么是觉得不是我的活,我不用去管,做好做坏和我没有关系. 而敏捷软件开发恰恰相反, ...

  2. 云闪付小程序吃坑,太坑了,整个人都要烧了,找遍全网都找不到这么详细的开发资料了

    因为公司需要让研究云闪付小程序,一开始以为像微信小程序一样.打包后基本能改主体类名放各个平台上跑,然后在研究中发现云闪付官方开发者工具难用的一匹,简直找不出哪个IDE能与此匹敌了.首先找遍全网也查不到 ...

  3. 软件开发有许多人都是MBTI 职业性格的ISTP类型,如果你就是这种型,恭喜你,请继续走下去...

    不论你是一个年轻人试图寻找你在世界的位置,或者不那么年轻的成人正在摸索职业方向,你都需要真正了解自己的人格特质,因为它会深深的左右你在不同职业上成功的机率. 唯有真正发现什么对你是重要的,并且知道自己 ...

  4. 这个Spring循环依赖的坑,90%以上的人都不知道

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Mythsman 原文:https://blog.myths ...

  5. 这个 Spring 循环依赖的坑,90% 以上的人都不知道

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:Mythsman blog.mythsman.com/post/5d838c7c2d ...

  6. 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市

    今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光和不 ...

  7. excel删除空行_Excel里99.9%的人都踩过的坑,早看早避开!

    本文作者丨可可(小 E 背后的小仙女) 本文由「秋叶 Excel」原创发布 如需转载,请在公众号发送关键词「转载」查看说明 2019 年上班第一天感觉怎么样呢? 望着满屏幕铺天盖地的表格,我只能摸摸自 ...

  8. Computer:少儿编程—每个人都应该学习编程,它能教你如何思考—编程入门的简介(编程语言的特点种类开发工具对比人类语言)、编程应用、编程意义之详细攻略

    Computer:少儿编程-每个人都应该学习编程,它能教你如何思考-编程入门的简介(编程语言的特点&种类&开发工具&对比人类语言).编程应用.编程意义之详细攻略 导读:乔布斯说 ...

  9. 有时间同情渣男傻女,不如想想人都是怎么被臆想出来的爱情给坑了

    第184原创 文|明玥 1 整个周末,整个互联网社交环境都被某大叔男明星的丑闻弄得乌烟瘴气. 这么恶心的瓜,我原本并不想吃. 因为细究一下,你就会发现,这个里面没有谁是值得站的,每个人都经不起推敲. ...

  10. C语言开发单片机为什么大多数都采用全局变量的形式?

    一个代码狗,成长经历都是莫名相似的. 你应该和我有类似的经历,虽然功能都能做出来,但是总觉得自己代码缺了点什么. 就是怎么写都觉得不够完美,感觉代码的水平介于专业和不专业之间. 自己的认知水平也非常有 ...

最新文章

  1. 【题解】Luogu P2730 魔板
  2. 移动设备将成为2014年最大的安全风险
  3. ppt科研绘图 图形布尔运算
  4. php 卡号算法,PHP实现通过Luhn算法校验信用卡卡号是否有效_PHP
  5. android textview动态设置,android – 如何动态设置文本到TextView?
  6. cesium polygon 悬浮在半空中
  7. ASP VBScript 函数速查表
  8. sqlplus / as sysdba 提示权限不足(ORA-01031)问题处理
  9. CentOs基础操作指令(用户管理、组管理)
  10. jaxp与dom4j遍历xml树
  11. Cat 6 的网线确实不好做
  12. Redis入门指南(三)
  13. dsp2812 寄存器总线
  14. win10证书服务器不可用怎么办,四种方法解决Win10专业版RPC服务器不可用的问题...
  15. python excel 单元格换行_python excel单元格如何换行
  16. 第二十章 齐桓公大婚冤家又聚首 宋闵公嘲笑重臣丢君命(
  17. clientX,offsetX,pageX,screenX的异同以Chrome浏览器测试
  18. 搞笑--为毛我顶多是个包工头
  19. python读excel中数据画图_python读取excel数据并且画图的实现示例
  20. 2012多校联盟第二场1009 还是BFS

热门文章

  1. Android stdio调试程序闪退或者报错:xxx keeps stopping解决方案
  2. mysql can t drop_异常之 mysql Can't drop database 'drop_database'; database doesn't exist
  3. 计算2015年4月6日是一年中的第几星期
  4. matlab中syms空间问题
  5. 正则表达式在线测试 | 菜鸟工具
  6. 策略路由(Policy-Based-Route)
  7. OAuth2.0系列四:OAuth2.0简化模式
  8. word2vec源码详解
  9. 行频、场频与分辨率、刷新率
  10. KETTLE各个版本下载地址