首页 > 评测 > 引脚连错了?没关系重映射一下就好了——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
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前