历史上的今天
返回首页

历史上的今天

今天是:2024年11月10日(星期日)

正在发生

2021年11月10日 | STM8定时器初始化和GPIO初始化顺序导致GPIO动作不正确

2021-11-10 来源:eefocus

现象

用定时器TIM4定时翻转GPIO用低电平灌电流驱动LED闪烁的简单测试程序不能正常执行。LED灯不闪烁,debug查看GPIO口却是正确的被翻转了。测试IO口电压不对。


问题代码

void main(void)

{

  // 系统时钟不分频(内部16MHz)

  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

  // TIM4进行128分频,同时设置溢出上限值保证1ms一次中断

  TIM4_TimeBaseInit(TIM4_PRESCALER_128, 124);

  // 开TIM4更新事件中断

  TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);

  // 开总中断

  enableInterrupts();

  //  使能定时器4

  TIM4_Cmd(ENABLE);

  //  初始化GPIO,输出上拉模式

  GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_SLOW);


  while (1){}

}


直接原因

继续debug发现GPIO的方向寄存器DDR和模式寄存器CR1没有被设置。


根本原因

在GPIO初始化完成之前定时器就开始运行了。导致不断进入定时器中断,后面的GPIO初始化代码没有正确被执行(或者定时器中断中不能被正确执行?这个没有深究了)


解决

将GPIO初始化代码放在定时器初始化之前(放在使能之前即可)


正确代码


void main(void)

{

  // 系统时钟不分频(内部16MHz)

  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

  // GPIO的初始化要放在timer初始化之前,否则初始化的过程会被中断打断导致输出有问题(DDR还没来得及配置成输出模式)

  GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_SLOW);

  // TIM4进行128分频,同时设置溢出上限值保证1ms一次中断

  TIM4_TimeBaseInit(TIM4_PRESCALER_128, 124);

  // 开TIM4更新事件中断

  TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);

  // 开总中断

  enableInterrupts();

  //  使能定时器4

  TIM4_Cmd(ENABLE);


  while (1){}

}

推荐阅读

史海拾趣

Furukawa Electric Co Ltd公司的发展小趣事

Furukawa Electric Co., Ltd. 在电子行业的五个发展故事

故事一:创立与早期发展

Furukawa Electric Co., Ltd.(简称“Furukawa Electric”或“古河电工”)的故事始于1884年,当时公司在日本东京建立了铜精炼设施和线缆加工工厂。这一初期的发展奠定了公司在电线电缆领域的坚实基础。随着工业革命的推进,对通信和电力传输的需求日益增长,Furukawa Electric凭借其精湛的技艺和高质量的产品逐渐在市场中站稳脚跟。通过不断的技术创新和产品优化,公司逐渐扩大了其业务范围,涉足电信、电子产品、汽车等多个领域。

故事二:技术创新与领先地位

在20世纪,Furukawa Electric成为了新技术领域的先驱。公司不仅在传统的电线电缆领域保持领先地位,还积极投入研发,开发出了许多具有划时代意义的产品。例如,在光通信领域,Furukawa Electric致力于推动“光纤到户(FTTH)”工程,为信息化社会提供了重要的技术支持。此外,公司在半导体领域也取得了显著成就,开发了多种先进的电子元件和散热产品,满足了市场对高性能电子产品的需求。

故事三:汽车领域的深入合作

近年来,Furukawa Electric进一步扩展了其业务范围,与多家汽车制造商建立了紧密的合作关系。特别是在电动汽车领域,公司凭借其先进的高压绕组线(HVW)技术,为汽车制造商提供了高性能的电动机解决方案。这些绕组线不仅满足了电动汽车对更轻盈、更薄的电动机绕组线及更高电压的需求,还提升了电动机的整体性能。通过与Superior Essex Inc.的合资企业“Essex Furukawa Magnet Wire Europe GmbH”,Furukawa Electric成功将这一技术引入欧洲市场,进一步巩固了其在全球汽车行业的领先地位。

故事四:全球市场的拓展

随着全球化的加速推进,Furukawa Electric也加快了其全球市场的拓展步伐。公司在全球范围内建立了完善的生产和销售网络,覆盖了亚洲、欧洲、美洲等多个地区。通过与国际知名企业的合作与竞争,Furukawa Electric不断提升自身的技术实力和市场竞争力。同时,公司还积极参与国际标准的制定和推广工作,为全球电子行业的发展做出了重要贡献。

故事五:可持续发展与社会责任

在追求经济效益的同时,Furukawa Electric也始终关注可持续发展和社会责任。公司致力于通过技术创新和产品优化来降低能耗和减少环境污染。例如,在电力传输系统和配电电缆领域,Furukawa Electric开发出了多种高效节能的产品,满足了市场对绿色、环保产品的需求。此外,公司还积极参与社会公益活动,为当地社区的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其在电子行业的长期发展奠定了坚实的基础。

Circuit Technology Inc公司的发展小趣事

在追求经济效益的同时,CTI也高度重视环保和可持续发展。公司积极响应国家环保政策,引进环保设备和技术,减少生产过程中的污染排放。同时,CTI还致力于开发环保型电子产品,推动电子行业的绿色发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是关于Circuit Technology Inc公司可能发展路径的虚构描述,并不代表该公司的真实历史。实际上,每个公司的发展都有其独特的经历和故事,需要具体的研究和了解才能得知。

Ametek公司的发展小趣事

在追求经济效益的同时,CTI也高度重视环保和可持续发展。公司积极响应国家环保政策,引进环保设备和技术,减少生产过程中的污染排放。同时,CTI还致力于开发环保型电子产品,推动电子行业的绿色发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是关于Circuit Technology Inc公司可能发展路径的虚构描述,并不代表该公司的真实历史。实际上,每个公司的发展都有其独特的经历和故事,需要具体的研究和了解才能得知。

ELECTRONIC ASSEMBLY公司的发展小趣事

在电子组装行业,品质是企业的生命线。一家名为“品质电子组装”的公司,从创立之初就坚持以品质为核心竞争力。公司引进了国际先进的生产设备和管理体系,建立了严格的质量控制体系,确保每一件产品都符合高标准、严要求。正是凭借着对品质的坚守和追求,品质电子组装赢得了客户的广泛赞誉和信赖,逐渐在行业中树立了良好的口碑。

AC Photonics Inc公司的发展小趣事

随着技术的成熟,AC Photonics Inc开始积极拓展市场。公司不仅在国内建立了完善的销售网络,还积极开拓海外市场。同时,AC Photonics Inc还与其他知名电子企业建立了战略合作关系,共同推动光电技术在各个领域的应用。这些合作不仅提升了公司的知名度和影响力,还为公司的长远发展提供了有力支持。

CT Micro公司的发展小趣事
  1. 创业初期与技术创新

CT Micro公司最初由几位电子工程领域的专家创立,他们看到了微型计算机断层扫描(Micro-CT)技术在电子行业中的巨大潜力。初期,公司面临着资金短缺和技术难题,但他们通过不断研发和创新,成功开发出了一款具有高性价比的Micro-CT设备,迅速获得了市场的认可。

  1. 市场拓展与合作伙伴关系

随着产品的成熟,CT Micro开始积极寻求市场拓展。他们与多家电子制造企业建立了合作关系,为这些企业提供Micro-CT设备的定制服务。通过与这些企业的合作,CT Micro不仅扩大了市场份额,还进一步提升了产品的技术水平和应用范围。

  1. 研发升级与产品迭代

面对日益激烈的市场竞争,CT Micro不断投入研发力量,对Micro-CT设备进行升级和迭代。他们成功推出了多款新型设备,具有更高的分辨率、更快的扫描速度和更低的辐射剂量。这些新产品的推出,进一步巩固了CT Micro在电子行业中的领先地位。

  1. 国际化战略与市场拓展

随着国内市场的饱和,CT Micro开始实施国际化战略。他们积极参与国际展览和研讨会,展示自己的产品和技术实力。同时,他们还在海外设立了销售和服务中心,为国际客户提供更加便捷的服务。通过这些努力,CT Micro成功打开了国际市场的大门。

  1. 社会责任与可持续发展

在快速发展的同时,CT Micro也积极履行社会责任。他们注重环保和可持续发展,采用环保材料和节能技术生产产品。此外,他们还积极参与公益事业,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实基础。

请注意,这些故事框架是虚构的,并不代表CT Micro公司的实际发展情况。如果您需要了解CT Micro公司或类似公司的真实故事,建议您查阅相关公司的官方网站、新闻报道或行业分析报告。

问答坊 | AI 解惑

怎样解决skype和花生壳的兼容问题????

skype和远程监控同时使用产生死机或速度很慢,请问有什么方法可以使它们两个同时使用?????…

查看全部问答>

图文俄罗斯方块25年,原来年龄并不大

  由小方块组成的不同形状的“拼板”,陆续从屏幕上方落下来。玩家通过调整拼板的位置和方向,试图使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的方块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块 ...…

查看全部问答>

独热码的使用 优点 和实例

在状态机中我们经常使用独热码,独热码的一个优势就是可以非常方便的取出一位就可以表示状态,免除复杂的比较电路,下面的代码定义了状态和状态信号提取.reg  [6:0]   txresp_state;localparam      RD_FIFO& ...…

查看全部问答>

求笔记本屏幕切换的实现原理

VGA和TFT的切换会是在哪里处理呢,BIOS还是应用程序? 个人感觉只有应用程序才能解决,因为切换过程中会造成屏幕模糊,有涉及到显卡驱动,但是为什么我关掉了所有可能的进程还是能够切换,不解,请高人指点一二。…

查看全部问答>

关于STK交互的问题

想计算机操作SIM卡中的STK,请问如何实现: 1、使用wavecom的设备,at指令祝贺操作 2、网上看了还有什么FETCH命令,这是如何样使用这些指令的?AT指令我知道用超级终端…

查看全部问答>

音乐芯片MIDI方面的问题,我实在想不明白。各位大哥大姐帮帮我吧!

我的工作是单片机编程。我们公司的音乐芯片是DREAM的(不知道大家知道不?),然而现在老板把一个芯片的编程全部交给我做,他对这个芯片也不是很懂,只不过他对DREAM的其它型号的芯片了解。我现在把我的问题介绍如下: 现在是学习MIDI编程,但在这 ...…

查看全部问答>

初学STM8的疑问_原来的内容是否一直保存的?

刚拿到三合一开发板,跑了一下例程,发现我每次用STLink调试之后,程序就自动下载到Flash里去的感觉,(断电重启程序就能开始跑了),觉得有点怪,是这样的吗?那它不需要烧Flash了?运行STVP也不允许我擦除。 //======================== ...…

查看全部问答>

俺是初学430的···

最近小弟做了个控制散热垫转速的东西,感觉不错,后续会把功能和图都传上来…

查看全部问答>

4G和3G概念

大家都知道3G可以向下兼容2G网络, 而目前4G,我查过所有的资料, 都没有向下兼容性。 请教有没有这方面专家指导一下。…

查看全部问答>

求助来了,小菜鸟来求助,好心朋友帮帮忙。

我是一个刚刚大学毕业的毕业生,现在刚到公司上班,分配的第一个任务是测试AD5735芯片,但是现在ADI的样片申请都要使用高校或者公司的邮箱,我没有,公司用的都是126的邮箱,我现在又急需要这个芯片,希望看到帖子,又能申请到样片的同志们,帮帮忙 ...…

查看全部问答>