首页 > 评测 > 引脚连错了?没关系重映射一下就好了——Holychip HC89F003评测
引脚连错了?没关系重映射一下就好了——Holychip HC89F003评测
- [导读]
- 虽然16位单片机已经被超低功耗的32位单片机挤压的几乎要消失殆尽,而8位单片机却一直凭借轻盈小巧和价格低廉的优势占据市场。目前8位单片机皆根据各种各种特定应用而推出了不同的增强型,今天给大家评测的来自Holychip(芯圣)的HC89F003则是以引脚的重映射功能著称。虽然很多MCU均有重映射的功能,不过像HC89F003这样绝大多数引脚皆可重映射的并不多见。
* GPIO_PIN_5 //选择端口5
* GPIO_PIN_6 //选择端口6
* GPIO_PIN_7 //选择端口7
* @参数 GPIO_Mode : 初始化模式
* GPIO_MODE_IN //数字输入
* GPIO_MODE_IN_PD //带下拉输入
* GPIO_MODE_IN_PU //带上拉输入
* GPIO_MODE_IN_AN //模拟输入
* GPIO_MODE_IN_SMT //数字输入 SMT
* GPIO_MODE_IN_PD_SMT //带下拉输入 SMT
* GPIO_MODE_IN_PU_SMT //带上拉输入 SMT
* GPIO_MODE_IN_AN_PU_PD //模拟输入上下拉同时打开,B版以后芯片支持
* GPIO_MODE_OUT_PP //推挽输出
* GPIO_MODE_OUT_OD //开漏输出
* GPIO_MODE_OUT_OD_PU //开漏带上拉输出
* @返回值 无
* @注 无
*/
void GPIO_Init(GPIO_TypeDef GPIOx,GPIO_Pin_TypeDef GPIO_PIN,GPIO_Mode_TypeDef GPIO_Mode)
{
u8 i;
u8 xdata *gpioset;
gpioset = 0xFF00 | ((GPIOx - 1)<<3);
for(i=0;i<8;i++){
if((GPIOx == GPIOT1)&&(i>1))break;
if(GPIO_PIN&0x01){
*(gpioset+i/2) = ((*(gpioset+i/2)) & (0xF0 >> ((i%2)*0x04))) | (GPIO_Mode << ((i%2)*0x04));
}
GPIO_PIN >>= 1;
}
}
上面是void GPIO_Init(GPIO_TypeDef GPIOx,GPIO_Pin_TypeDef GPIO_PIN,GPIO_Mode_TypeDef GPIO_Mode)的原函数。。
有兴趣的可以跳进去看一下。不看也可以。
打开HC89F_GPIO.H
拉倒最下面。有gpio的函数,可以直接调用。
比如我们需要点亮一个led灯,调用这个函数就可以了:
void GPIO_Write(GPIO_TypeDef GPIOx,u8 Value); //对一组端口赋值
看板子的原理图:
LED1连在HC89F003的P11脚,那我们点亮他就是让P11脚为低电平就行了。
void main(void)
{
System_init(); //系统初始化
GPIO_Init(GPIOT1,GPIO_PIN_1, GPIO_MODE_OUT_PP); //P00设置为推挽输出模式
GPIO_Write(GPIOT1,0xFD); //设置P11脚为低电平
while(1);
}
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前