【国民技术N32G457评测】四、PWM及呼吸灯测试
<p>我的相关贴子:</p><p><a href="https://bbs.eeworld.com.cn/thread-1192408-1-1.html" target="_blank">【国民技术N32G457评测】一、资料准备</a></p>
<p><a href="https://bbs.eeworld.com.cn/thread-1192642-1-1.html" target="_blank">【国民技术N32G457评测】二、开箱+点灯</a></p>
<p><a href="https://bbs.eeworld.com.cn/thread-1192796-1-1.html" target="_blank">【国民技术N32G457评测】三、ADC及串口功能测试</a></p>
<hr />
<p> </p>
<p>PWM初始化代码</p>
<p>LED3以100HZ频率闪烁,亮暗逐渐变化,产生呼吸效果。</p>
<pre>
<code class="language-cpp">
void PwmInit(void) //PWM定时器初始化
{
//开启T1时钟 + AFIO
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_TIM1|RCC_APB2_PERIPH_AFIO,ENABLE);
//GPIO引脚复用
//PA8/TIM1_CH1/LED1
GPIO_InitType gpio;
gpio.Pin=GPIO_PIN_8;
gpio.GPIO_Mode=GPIO_Mode_AF_PP;
gpio.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOA,&gpio);
//tim1部分引脚映射
GPIO_ConfigPinRemap(GPIO_PART1_RMP_TIM1,ENABLE);
//tim1定时器相关
//144M/14400=10KHZ/ 10000 =1HZ
// /100=100hz
TIM_TimeBaseInitType tim_base;
tim_base.Prescaler = 14400;
tim_base.CntMode = TIM_CNT_MODE_UP;
tim_base.Period = 100;
tim_base.ClkDiv = 0;//TIM_CLK_DIV4;
tim_base.RepetCnt= 0;
TIM_InitTimeBase(TIM1, &tim_base);
OCInitType tim;
tim.OcMode = TIM_OCMODE_PWM1;
tim.OutputState= TIM_OUTPUT_STATE_ENABLE;
tim.OutputNState = TIM_OUTPUT_NSTATE_ENABLE;
tim.Pulse = 5000; //占空比
tim.OcPolarity = TIM_OC_POLARITY_LOW;
tim.OcNPolarity= TIM_OCN_POLARITY_HIGH;
tim.OcIdleState= TIM_OC_IDLE_STATE_SET;
tim.OcNIdleState = TIM_OC_IDLE_STATE_RESET;
TIM_InitOc1(TIM1,&tim);
TIM_Enable(TIM1,ENABLE);
TIM_EnableCtrlPwmOutputs(TIM1,ENABLE);
}</code></pre>
<hr />
<p>主运行代码,10mS调用一次此函数,1秒循环一次</p>
<pre>
<code class="language-cpp">void Task2(void){ //呼吸灯 10ms
static uint16_t count=0;
static int dir=0;
TIM_SetCmp1(TIM1,count);
if(dir==0){
count++;
if(count>100){
dir=!dir;
}
}else{
count--;
if(count>65000){
count=0;
dir=!dir;
}
}
}</code></pre>
<p> </p>
<p>相关引用文件</p>
<pre>
<code class="language-cpp">#include "n32g45x.h"
#include "n32g45x_gpio.h"
#include "bsp.h"
#include <n32g45x_tim.h></code></pre>
<p> </p>
<p> </p>
<p><span style="color:#d35400;">申明:我的相关贴子均为我原创,手工敲出来的,不是拿个DEMO下载运行一下就完事。</span></p>
<p> </p>
<p>视频效果:</p>
<p>二楼上传</p>
<p><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1RZ4y1o73B&page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
</p>
<p>运行效果</p>
<p> </p>
<p> </p>
<p> </p>
<p>准备回老家了,剩下的年后评测。</p>
fxyc87 发表于 2022-1-25 12:16
运行效果
准备回老家了,剩下的年后评测。
<p>可以呀,回老家,也可以带回去弄的!</p>
<p>还不如年后在测,回家好好陪家人才是正道<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/lol.gif" width="48" /></p>
<p>赞楼主认真态度:)</p>
<p>祝新年快乐~~</p>
soso 发表于 2022-1-26 11:45
祝新年快乐~~
<p>谢谢。</p>
<p>呼吸灯不错</p>
<p>曾经用运放和555都调过</p>
<p>感觉PWM可能效果更好</p>
se7ens 发表于 2022-1-27 13:54
呼吸灯不错
曾经用运放和555都调过
感觉PWM可能效果更好
<p>是PWM啊,每隔10mS修改一次PWM占空比</p>
页:
[1]