历史上的今天
返回首页

历史上的今天

今天是:2025年03月11日(星期二)

正在发生

2020年03月11日 | STM32开发笔记69: 外设启动的先后次序

2020-03-11 来源:eefocus

单片机型号:STM32F070F6P6


今天,在程序框架中增加了Timer16定时器驱动,但程序不能正常运行,本篇日志记录其原因。


驱动程序框架,定义了回调函数Timer16_InterruptFunction,写在main.cpp中用于逻辑层设计。Timer16_InterruptFunction调用的间隔为1ms,具体程序如下:


void Timer16_InterruptFunction(void)

{

Target.HAL.L2.Turn();

}


此程序完成以1ms为间隔L2闪烁的程序,但是将此程序烧写到目标板后,程序不能正常运行。经过调试,最后将问题锁定在启动顺序上,看一下程序外设的启动顺序,具体程序如下:


class CHAL

{

public:

CSystemInit SystemInit;

CSystemClock SystemClock;

CSystemTimer16 SystemTimer16;

CL1 L1;

CL2 L2;

CInfraredEmission InfraredEmission;

};


程序先启动的Timer16,后启动的L2,由于TImer16启动后,立刻发生中断,则会执行Timer16_InterruptFunction中的程序,而此时L2还未初始化,则造成错误发生。


知道以上原因后,解决方法很简单,调换一下启动顺序即可,程序如下:


class CHAL

{

public:

CSystemInit SystemInit;

CSystemClock SystemClock;

CL1 L1;

CL2 L2;

CSystemTimer16 SystemTimer16;

CInfraredEmission InfraredEmission;

};


此时,再运行程序,一切正常。

推荐阅读

史海拾趣

Dongguan Jingyue Electronics Co Ltd公司的发展小趣事

Dongguan Jingyue Electronics Co Ltd非常重视人才战略和团队建设。公司深知人才是企业发展的根本,因此不断加大对人才的投入力度。通过引进优秀人才、加强员工培训、建立激励机制等方式,公司打造了一支高素质、专业化的团队。这支团队不仅为公司的发展提供了有力支持,也为公司的创新和发展注入了新的活力。

EQCOLOGIC公司的发展小趣事

为了进一步提升公司的竞争力和市场份额,EQCOLOGIC公司决定实施国际化战略。公司积极参与国际电子展会和交流活动,与国际同行建立广泛的合作关系;同时,还加大在海外市场的投入力度,拓展销售渠道和市场份额。通过不断的努力和创新,EQCOLOGIC的产品逐渐打入国际市场,公司的国际化战略也取得了显著成效。

昆泰(CHRONTEL)公司的发展小趣事

进入21世纪后,昆泰的创始人Dr. Gillings不满足于CRO企业的平稳收益和稳定现金流,他开始寻求与药企建立更加紧密的战略合作伙伴关系。为此,昆泰在2000年成立了PharmaBio部门,通过资金、技术和销售团队为客户提供全方位的支持。这一战略转型不仅使昆泰与药企建立了深厚的合作关系,还为其带来了丰厚的回报。

复旦微电子(FM)公司的发展小趣事

进入21世纪后,昆泰的创始人Dr. Gillings不满足于CRO企业的平稳收益和稳定现金流,他开始寻求与药企建立更加紧密的战略合作伙伴关系。为此,昆泰在2000年成立了PharmaBio部门,通过资金、技术和销售团队为客户提供全方位的支持。这一战略转型不仅使昆泰与药企建立了深厚的合作关系,还为其带来了丰厚的回报。

Alorium Technology公司的发展小趣事

1982年,Dennis Gillings博士在美国北卡罗莱纳州创立了Quintiles Transnational Inc.(昆泰)。成立之初,昆泰只是一家为药企提供数据服务的美国本土公司。凭借其独特的数据处理能力和对市场的敏锐洞察,昆泰迅速在行业内树立了良好的口碑。

Decawave公司的发展小趣事

随着UWB技术的不断发展和应用领域的不断扩展,Decawave不断丰富和完善其产品和解决方案。除了UWB芯片外,公司还推出了与UWB芯片兼容的模块和开发工具,以及针对特定应用场景的解决方案。这些产品和解决方案不仅满足了客户的不同需求,也进一步巩固了Decawave在UWB技术领域的领先地位。

问答坊 | AI 解惑

求一个AC200V转DC24V的开关电源(直流24V有正、负)

求一个AC200V转DC24V的开关电源, 即:输入:L         输出:+24V                  N              ...…

查看全部问答>

STM32F10x系列MCU

本公司代理销售ST的STM32系列MCU 公司地址:广东深圳市福田区南园路70号上田大厦4D 公司官网:www.upsd8051.com 联系方式:MSN:lg_0755@hotmail.com,QQ:45293156;           TEL:0755-83248843,E-Mail:hubin@u ...…

查看全部问答>

用处图像处理的DSP有哪些

大家知道一般做图像处理时用的DSP芯片有哪些吗?希望大家不吝赐教哦,呵呵…

查看全部问答>

新手求助:利用ADC0809实现数字电压表的功能

本人对电子电路设计一点都不了解,选修不得已选了这门课,因为人文自然学科学分都修满 了,所以只能选工程科.这门课程就快结束了,过两天就要交作业,作业成绩作为这科期末成绩.前几 天下载了几个版本软件,都安装不了.实在没时间下载了,宿舍四个人一条 ...…

查看全部问答>

请教高手过采样的问题?

    我要用到两个个16位的ADC,对速度没有要求,但是要求保证精度。看了stm32的手册,上边讲是应用过采样技术将提高ADC的精度。感觉很不错,这样我就能省两个ADC的钱了,降低了不少成本。    我现在 ...…

查看全部问答>

请问用IAR好还是用KEIL好?

                                 一直以来都是用KEIL,看到坛子里很多人都是用IAR开发的,故产生这个疑问…

查看全部问答>

【TI原创】软件解码正交编码器

正交编码器,旋转编码器的一种(增量式编码器),用来确定机械行程的位移量与方向。通过监控脉冲数目和两个脉冲的相对相位,可以跟踪旋转的位置,旋转 和速度。比如电机转速。LM3S8962包含两个正交编码器接口,这对于电机驱动与监控足够,不过编码 ...…

查看全部问答>

at tiny44a 简单的用下ad转化,可就是转换完成标志就是不置位

用的 atmel studio6.0 主频 8M 每次走到while 就停住了 /* * ADC.c * * Created: 2012/6/18 16:13:15 *  Author: Administrator */ #include #include unsigned int Adc_Val; unsigned int sum; void ADC_In ...…

查看全部问答>