首页 > 评测 > 引脚连错了?没关系重映射一下就好了——Holychip HC89F003评测

引脚连错了?没关系重映射一下就好了——Holychip HC89F003评测

Holychip   HC89F003   8位单片机   51   MCU   
  • 作者:杰杰
  • 来源:21ic
  • [导读]
  • 虽然16位单片机已经被超低功耗的32位单片机挤压的几乎要消失殆尽,而8位单片机却一直凭借轻盈小巧和价格低廉的优势占据市场。目前8位单片机皆根据各种各种特定应用而推出了不同的增强型,今天给大家评测的来自Holychip(芯圣)的HC89F003则是以引脚的重映射功能著称。虽然很多MCU均有重映射的功能,不过像HC89F003这样绝大多数引脚皆可重映射的并不多见。

PWM3_OUTPin_P07 = (u8)0x07, //PWM3输出端口为P07

PWM3_OUTPin_P10 = (u8)0x10, //PWM3输出端口为P10

PWM3_OUTPin_P11 = (u8)0x11, //PWM3输出端口为P11

PWM3_OUTPin_P20 = (u8)0x20, //PWM3输出端口为P20

PWM3_OUTPin_P21 = (u8)0x21, //PWM3输出端口为P21

PWM3_OUTPin_P22 = (u8)0x22, //PWM3输出端口为P22

PWM3_OUTPin_P23 = (u8)0x23, //PWM3输出端口为P23

PWM3_OUTPin_P24 = (u8)0x24, //PWM3输出端口为P24

PWM3_OUTPin_P25 = (u8)0x25, //PWM3输出端口为P25

PWM3_OUTPin_P26 = (u8)0x26, //PWM3输出端口为P26

PWM3_OUTPin_P27 = (u8)0x27, //PWM3输出端口为P27

这是从芯圣例程找出来的,我数了一下,一路pwm随时在任何一个io口输出。这就是一个重映射,不管你板子设计怎么接线,只要连接到io口,那么就能通过引脚重映射功能,实现你需要的功能,给设计电路带来方便。

void main(void)

{

System_Init(); //系统初始化

GPIO_Init(GPIOT0,GPIO_PIN_1,GPIO_MODE_OUT_PP); //P01推挽输出

PWM3_PinRemapConfig(PWM3_OUTPin_P01); //PWM3输出映射P01口

PWM3_OutPutCmd(ENABLE); //输出使能

//周期计算 = 0xff / (Fosc / PWM分频系数) (Fosc见系统时钟配置的部分)

PWM3_Init(PWM3_HIGH_VALID,PWMCK_8); //PWM3高有效,时钟为OSC时钟8分频

PWM3_PeriodConfig(0xff); //PWM3周期为0xFF

PWM3_DutyCycleConfig(0x55); //PWM3的占空比设置

PWM3_Cmd(ENABLE); //PWM3使能

while(1);

}

核心函数:PWM3_PinRemapConfig(PWM3_OutPin_TypeDef OutPin); //PWM3输出管脚映射

直接调用就可以了。

补充一点:

一路pwm重映射只能有一个引脚输出pwm,我们不可能实现所有的io都输出同样的pwm波,那岂不是逆天了嘛!!还有就是重映射也有优先级的,这是要注意 的一点。但是我有一个想法,就是分时复用。这个时间段P00口做usart_tx功能,等发送完,我又可以输出pwm,这样不知道行不行,仅为笔者个人想法而已。

资料:

1):HC89F003技术资料

http://bbs.21ic.com/forum.php?mod=viewthread&tid=1856806&fromuid=1875788

2):上海芯圣电子股份有限公司

http://www.holychip.cn/kfgj/index_14.aspx?lcid=14

  • 本文系21ic原创,未经许可禁止转载!

网友评论