void R_PORT_Create(void)
{
P7 = _01_Pn0_OUTPUT_1 | _00_Pn2_OUTPUT_0 | _00_Pn7_OUTPUT_0;
PM7 = _00_PMn0_MODE_OUTPUT | _02_PMn1_MODE_INPUT | _ 00_PMn2_MODE_OUTPUT | _08_PMn3_MODE_INPUT | _10_PMn4_NOT_USE |
_20_PMn5_NOT_USE | _40_PMn6_NOT_USE | _00_PMn7_MODE_OUTPUT;
}
这是个标准定义。
调用的话。
P7&=_00_Pn7_OUTPUT_0;//=0
P7|=_80_Pn7_OUTPUT_1;//=1
而输入输出转换标准定法是这样的:
void PORT_ChangeP00Input(BOOL enablepu)
{
if (enablepu)
{
PU0 |= _01_PUn0_PULLUP_ON;
}
else
{
PU0 &= (UCHAR)~_01_PUn0_PULLUP_ON;
}
PM0 |= _01_PMn0_MODE_INPUT;
}
这么定义我感觉读起来有点累。
用宏定义又太麻烦?
大家现在是怎么定义的啊。
用宏定义成C51的那种方式
P77=0; /// P7 &= _00_Pn7_OUTPUT_0;//=0
P77=1;
大家是这样定义的不??是不?????
关于IO的输入输出选换也可以定义成宏方式不?
这样为什么不对?如下
#define SDA=0 P7&=_00_Pn7_OUTPUT_0
SDA=0;
我要赚赏金打赏帖 |
|
|---|---|
| bsp_log:RTT分级日志封装被打赏¥16元 | |
| J-LinkRTT常用API函数讲解被打赏¥14元 | |
| 【S32K3学习整理】S32K388 四核启动被打赏¥23元 | |
| 【S32K3学习整理】Lockstep和Decoupled 模式被打赏¥28元 | |
| 嵌入式芯片调试神器-J-LinkRTT被打赏¥21元 | |
| 人体红外PIR感应传感器使用(ESP32S3)被打赏¥26元 | |
| 一种有效完成脚本程序测试的方法被打赏¥28元 | |
| WorkBuddy搭配SolidCraft给开发板做两件式外壳被打赏¥33元 | |
| 开箱一块k230被打赏¥33元 | |
| 【瑞萨RA8D1测评】RA8D1+lwIP网络验证与TCPOTA的实验记录被打赏¥33元 | |
我要赚赏金
