历史上的今天
返回首页

历史上的今天

今天是:2025年02月04日(星期二)

2020年02月04日 | stm8s003 PD4引脚多个功能应用指南

2020-02-04 来源:eefocus

stm8s003的PD4引脚比较特殊,主要有3个功能。


下面对不同功能进行设置讲解。




功能一,普通IO口:


普通IO就不详细讲了,stm8s的引脚设置就一句话,最多带中断多两句,很简单




功能二,TIM2_CH1输出


这个引脚可以使用TIM2的通道一进行PWM输出,在使用该功能的时候不需要设置标志位直接初始化即可。


代码如下:


void Beep_Tim2_Pwm_Init(uint16_t CCR1_Val)

{

  /* Time base configuration */

  TIM2_TimeBaseInit(TIM2_PRESCALER_16, 999);

 

  /* PWM1 Mode configuration: Channel1 */ 

  TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH);

  TIM2_OC1PreloadConfig(ENABLE);

 

  TIM2_ARRPreloadConfig(ENABLE);

 

  /* TIM2 enable counter */

  TIM2_Cmd(ENABLE);

}


上面的代码初始化完了之后就可以使用PD4引脚输出PWM了

另外值得一提的有两个函数:


TIM2_SetAutoreload(0x0000); //频率

 

TIM2_SetCompare1(0x0000); //占空比


第一个函数修改输出PWM的频率,第二个函数修改输出PWM的占空比。



功能三,BEEP引脚:


这个引脚可以直接驱动蜂鸣器,但是在使用的时候需要设置option。


可以在stvp软件中设置,也可以用如下代码设置:


初始化代码:


void Beep_Init(BEEP_Frequency_TypeDef BEEP_Frequency)

{

  CLK_LSICmd(ENABLE);

  BEEP_LSICalibrationConfig(128000);

  BEEP_Init(BEEP_Frequency);

  BEEP_Cmd(ENABLE);

}



修改option代码:

void Set_Beep_OptionByte(void)

{

  uint16_t Beep_Option_status;

  Beep_Option_status=FLASH_ReadOptionByte(0x4803);

  if(Beep_Option_status&0x8000)

  {

    FLASH_ProgramOptionByte(0x4803,(uint8_t)(Beep_Option_status&0x7fff));

  }

}


最后值得一提的是BEEP功能的频率使用很有限

typedef enum {

  BEEP_FREQUENCY_1KHZ = (uint8_t)0x00,  /*!< Beep signal output frequency equals to 1 KHz */

  BEEP_FREQUENCY_2KHZ = (uint8_t)0x40,  /*!< Beep signal output frequency equals to 2 KHz */

  BEEP_FREQUENCY_4KHZ = (uint8_t)0x80   /*!< Beep signal output frequency equals to 4 KHz */

} BEEP_Frequency_TypeDef;


在ST的库函数中仅定义了1KHZ , 2KHZ , 4KHZ

实话实说,不如直接用TIM2_CH1输出PWM灵活,不过当你用TIM2做其他功能的时候,这个引脚初始化为BEEP也可以多个方案选择。

推荐阅读

史海拾趣

安纳森(AnaSem)公司的发展小趣事

在追求经济效益的同时,安纳森始终不忘企业的社会责任。公司深知电子产品在生产和使用过程中可能对环境造成的影响,因此将环保理念融入产品设计和生产过程中。安纳森的产品原料材质标准均符合全球最新的环保指令和有害物质禁用条约,确保用户在使用产品的同时,也能为地球环境保护做出贡献。这一举措不仅赢得了用户的广泛赞誉,也为整个电子行业的绿色发展树立了典范。

Eris Technology Corp公司的发展小趣事

Eris Technology Corp公司自1995年成立以来,一直致力于半导体及相关技术的研发。在成立初期,公司面临激烈的市场竞争和技术挑战。然而,通过不断的研发投入和人才引进,Eris Tech成功开发出一款高性能的二极管产品,并凭借其优异的性能赢得了市场的认可。随着产品线的不断丰富和市场布局的逐渐完善,Eris Tech逐渐在电子行业中崭露头角。

广东奥科公司的发展小趣事

广东奥科公司深知品质是企业生存和发展的关键。因此,公司始终将品质管理放在首位,从原材料采购到生产流程控制,再到产品出厂检验,每一个环节都严格把控品质。同时,公司还建立了完善的品质管理体系和持续改进机制,通过不断优化生产工艺和提升产品质量,确保每一款产品都能满足客户的期望和需求。

Hasco Relays and Electronics International Corp公司的发展小趣事

除了国防和航空领域外,L3Harris还积极投身于国土安全和公共安全领域。公司为这些领域提供了多种先进的技术和解决方案,包括监视系统、情报分析工具和边境安全技术等。这些技术和解决方案在维护国家安全和应对紧急情况方面发挥了重要作用。L3Harris在国土安全和公共安全领域的贡献不仅体现了其社会责任感,也进一步拓展了其在电子行业中的业务范围和市场影响力。

请注意,上述故事是基于可获取的信息和事实进行归纳和构想的,可能无法完全涵盖Harris公司(现为L3Harris Technologies)发展历程中的所有细节和事件。

CAROLCABLE公司的发展小趣事

在激烈的市场竞争中,CAROLCABLE公司深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进先进的生产设备和技术人才,推动技术创新和产业升级。经过多年的努力,CAROLCABLE成功研发出了一系列具有自主知识产权的高性能线缆产品,这些产品在传输速度、稳定性和耐用性等方面均达到了行业领先水平。

随着产品技术的不断升级,CAROLCABLE开始积极拓展国内外市场。公司参加了多个国际电子线缆展会,与全球同行交流学习,寻找合作机会。同时,CAROLCABLE还加强与国内大型电子企业的合作,为其提供定制化的线缆解决方案。这些举措不仅为公司带来了更多的商机,也进一步巩固了CAROLCABLE在电子线缆行业的领先地位。

这两个故事仅是对CAROLCABLE公司发展起来的简要描述,实际上,公司的成长历程中还有许多值得探讨的细节和里程碑事件。如需了解更多关于CAROLCABLE公司的故事,建议查阅相关新闻报道或公司官方资料。

BILIN公司的发展小趣事

在激烈的市场竞争中,CAROLCABLE公司深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进先进的生产设备和技术人才,推动技术创新和产业升级。经过多年的努力,CAROLCABLE成功研发出了一系列具有自主知识产权的高性能线缆产品,这些产品在传输速度、稳定性和耐用性等方面均达到了行业领先水平。

随着产品技术的不断升级,CAROLCABLE开始积极拓展国内外市场。公司参加了多个国际电子线缆展会,与全球同行交流学习,寻找合作机会。同时,CAROLCABLE还加强与国内大型电子企业的合作,为其提供定制化的线缆解决方案。这些举措不仅为公司带来了更多的商机,也进一步巩固了CAROLCABLE在电子线缆行业的领先地位。

这两个故事仅是对CAROLCABLE公司发展起来的简要描述,实际上,公司的成长历程中还有许多值得探讨的细节和里程碑事件。如需了解更多关于CAROLCABLE公司的故事,建议查阅相关新闻报道或公司官方资料。

问答坊 | AI 解惑

19264顯示屏

這是我自己做得程序用PIC彙編編寫的…

查看全部问答>

如何用51单片机读取u盘

大家好,现有ch375b,89C52,u盘接口,请问如何通过这些器件读取u盘数据并显示到12864上哪,哪位高手做过,可以指点一下吗,谢谢!!…

查看全部问答>

What is “Protocol Based“?

What is “Protocol Based“?…

查看全部问答>

AVR中IO输出频率的问题

在ICC AVR中如何编写一个管脚是对另一个管脚取反,  但取反后输出的端口的频率要比实际端口输出的频率低十几倍请问如何才能使他们同步? …

查看全部问答>

寻找技术合作伙伴

寻找RFID和嵌入式开发技术合作伙伴,有意者请回复…

查看全部问答>

JLink+Keil的棘手问题

小弟最近使用JlinkV8+Keil调试2440,发现有如下问题,恳请高手赐教! 1、Keil对Jlink的支持有两种方式:RDI和AGDI,那种方式更好一些?(在我看来Jlink的RDI接口好像设置项更多一些) 2、单步调试时,当程序运行到某个子函数里,我按下Step Out时 ...…

查看全部问答>

wince下用.net C#,如何让按钮文字换行?

用vs.net 2008 C#开发wince程序,需要在一个按钮上显示两行文字,我用newline开始在本机调试是可以输出两行文字的,可在wince环境下竟然第二行不能显示,请教各位有什么办法可以让按钮文字显示两行的?谢谢了。…

查看全部问答>

gprs连接成功但是socket连接失败

连接上GPRS后,能打开网页(baidu.com),但是通过socket ,tcp连不上自己的服务器。为啥呢。…

查看全部问答>

急求 ALTERA DSP_Builder9.1 sp1 破解文

如题急求 ALTERA DSP_Builder9.1 sp1 破解文件  哪位大侠有呀!…

查看全部问答>

关于Arria GX 系列EP1AGX的工作电流如何确定

EP1AGX20(484)中的工作电流如何确定,就是内核电流比较大一点,但是具体是多少,该如何确定?高手指导下呗…

查看全部问答>