新驱动力MM32F031开发板评测:外设PWM和UART的使用
<div class='showpostmsg'> 本帖最后由 我爱下载 于 2018-10-22 13:45 编辑外设单元pwm和uart的使用评测
测试pwm和uart外设单元,程序依据例程中TIM的PWM例程修改得到,评测主要内容为Uart作为标准输入输出外设接受用户的控制命令,打印程序运行状态,控制pwm按照设计要求改变占空比。Pwm设计为10KHz固定频率可变占空比方式输出,利用TIM3输出端子为PB4,占空比调整范围0%~100%。
对PWM初始化的理解:
对UART的修改:
在官方代码的基础上增加了输入获取功能,支持kbhit()和getchar()
添加如下代码://重定向fgetc函数
int fgetc(FILE*f)
{
while((UART1->CSR&UART_IT_RXIEN)==0);
return (UART1->RDR & 0x00ff);
}
int kbhit(void)
{
if((UART1->CSR&UART_IT_RXIEN)==0)
return 0;
else return 1;
}
主程序代码的修改:
while(1)
{
ledflushcount++;
if(ledflushcount >= 100000)
{
ledflushcount = 0;
D2_TOGGLE();
}
if(kbhit())
{
key = getchar();
switch(key)
{
case 'a':
{
if(led0pwmval < 100)
led0pwmval += 10;
pwmtarget = PWM_PERCEND(led0pwmval);
}
break;
case 's':
{
if(led0pwmval >= 10)
led0pwmval -= 10;
pwmtarget = PWM_PERCEND(led0pwmval);
}
break;
}
printf("PWM PER = %d %%\n", led0pwmval);
}
if(pwmtarget != pwmcurrent)
{
if(pwmtarget > pwmcurrent)
pwmcurrent++;
else if(pwmtarget < pwmcurrent)
pwmcurrent--;
TIM_SetCompare1(TIM3, pwmcurrent);
}
}
执行效果:
通过不断的调大和调小占空比,红色小灯的亮度随着变亮和变暗。
此内容由EEWORLD论坛网友我爱下载原创,如需转载或用于商业用途需征得作者同意并注明出处
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页:
[1]