一键使用PWM并输出,STC8H系列库函数,PWM外设教程


前言

随着STC单片机的发展,外设功能也不断增加,开发时间也慢慢的延长了很多博主为了缩短开发时间自己开发了一种库文件。可以一键使用外设,顾名思义就是我们不用再去配置寄存器不用再去看开发手册只需要对外设有一定了解便可以非常灵活的使用这个库函数,并且我在每个库函数的.h文件中详细的说明了库函数的用法以及教程


一、库函数是什么?

库函数是把函数放到库里供人们使用的一种方式,使用的时候只需要把文件放在主函数文件里用#include“文件名”加到里面就可以使用库文件了

二、此处重点:一个函数实现配置PWM并输出

所谓一个函数实现配置PWM并输出其实是我在库文件里已经写好的大家不用关心库文件的内容只需要关心库函数怎么应用就可以了,下面会详细讲解库函数的使用方式。
下面演示的是主函数内的配置样式,后面会告诉大家库函数的获取方式。

//本例程实现一个函数配置PWM并输出	配置方式与方法在.h文件有详细说明
//输出端口是	P10
//作者电话	18148586743(同微信)更新时间2022/11/30
#include"PWMA_SC.h"//库文件
void main()//主函数
{
		initial_PWM(0,1,10,0,0,65536/2,65535,1);//配置PWM
		start(1);//启动输出
		while(1);
	
}

库函数的参数配置流程如下,我只放进来了一小部分,库函数内部还由更详细的说明,包括每个参数的说明以及功能。

/*********************************************单路输出参数配置序列与过程*************************************************		|
/*************以下是配置过程																									|
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————|
			  |	 步骤  	|		配置		|		                         功能说明	                             | 数值范围	|
——————————————+—————————+———————————————————+————————————————————————————————————————————————————————————————————————+——————————|
/*************|第一步:	|PWMA_Pss端口		|选择带PWM功能的IO口 确定在那个IO口输出PWM 可参考下面表格      			 |	uchar 	|
/*************|第二步:	|Channel_No通道		|依赖第一步选择的IO口 以确定通道,只能输入  1,2,3,4通道数		     |	uchar 	|
/*************|第三步:	|compare输出通道	|输出的通道选择 一个主通道对应两个子通道 此参数是选择那个子通道		 	 |	uchar 	|
/*************|第四步:	|PolaritY极性		|依赖于第三步 配置对应子通道PWM输出极性								 	 |	bit 	|
/*************|第五步:	|frequencY分频器	|可与频率进行调试也可以写0表示不分频  此值越大输出频率越低		 		 |	uint 	|
/*************|第六步:	|Duty_cycle占空比	|高电平时间 可与频率进行协调											 |	uint 	|
/*************|第七步:	|frequency频率		|输出速度控制															 |	uint 	|
/*************|第八步:	|Enable使能			|1表示使能PWM1P或PWM1N 0表示关闭 调用一次本函数只能设置一个子通道		 |	bit 	|
/*************|第九步:	|start开始计数		|写1后PWM开始输出 写0关闭输出											 |	bit 	|
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————*/

输出的波形

在这里插入图片描述

总结

一条函数就实现了PWM外设的配置并且输出PWM,是不是相当简单呢。这个库函数还有对称输出,互补输出,单通道输出多种功能
库函数获取方式Q裙:550176879加入后通过群公告的链接就可以获得库文件了

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要排查STC8H的PWM输出问题,需要注意以下几个方面: 首先需要确认是否将PWM口正确的配置为PWM输出口,是否配置正确的周期和占空比。可以检查程序中的相关设置,或者直接查看寄存器(如PWM_CONTR寄存器)的值是否正确。 其次需要确认是否连接了合适的负载,比如LED灯或者电机等。如果负载过大或过小都有可能导致PWM输出不正常。 还需要检查是否将PWM的引脚连接到正确的端口。在连接过程中可能发生误接或者并未成功连接引脚,导致PWM无法送到正确的端口。 如果以上检查均正常,还需要注意是否存在其他异常因素,比如系统时钟异常或者程序中其他设置冲突等。可以使用调试工具或者在程序中加入调试代码,逐步排查问题。 综上所述,当STC8H的PWM输出时,需要从以上几个方面进行排查,以确定具体的问题所在,并进行相应的修复。 ### 回答2: 对于STC8H单片机的PWM输出问题,一般有以下几种可能的原因: 1. 硬件连接问题: 首先需要检查PWM输出管脚与其他电路的连接是否正确,如是否与负载、电源等连接正常。 2. IO口设置问题: 需要检查相关IO口是否设置为PWM输出模式,以及是否设置正确,如重设是否正确。 3. 定时器设置问题:需要检查定时器的初始化是否正确,例如定时器模式、计数器初始值、时钟源和分频数等。 4. PWM频率和占空比问题: 需要检查PWM输出的频率范围和占空比值是否在要求范围内。如果PWM频率太高或太低、占空比值不正确,都可能导致PWM输出无效。 5. 软件实现问题: 如程序逻辑是否正确,是否存在编译错误等。 以上是可能导致STC8H单片机PWM输出无效的几种情况,需要根据实际情况逐一排查,找到具体原因并进行解决。 ### 回答3: 如果stc8h pwm没有输出,可能是以下几个原因: 1.电路问题:检查PWM输出是否连接正确,检查连接线是否有开路或者短路的情况,检查电源线和接地线是否连接良好。 2.程序问题:检查程序是否正确,是否有错误或者遗漏。检查pwm的GPIO配置是否正确,是否初始化了pwm的相关寄存器。 3.硬件问题:检查定时器的时钟分频是否正确,是否选择了正确的输出模式。检查定时器和pwm的硬件连接是否正确,是否有损坏的元件。 4.电源问题:检查电源供电是否稳定,电压是否满足要求。如果电源电压不足,会影响pwm输出。 如果以上四个方面都排除了,可以考虑对stc8h的芯片进行检查,是否存在硬件故障。在检查过程中,需要注意安全防护,避免电路短路或者其他意外情况的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值