在写一个GPIO的类时,出现下面情况。
在gpio文件中定义
[mw_shl_code=c,true]using namespace AP_HAL ;
class GPIO
{
public:
void pinmode( GPIO_TypeDef GPIOx,GPIO_InitTypeDef GPIO_Mode); //端口设置功能
void write(GPIO_TypeDef GPIOx, u32 PINx, u32 Value); //写端口值
void write(GPIO_TypeDef GPIOx, u32 Value); //写整个GPIOx值
u32 read(GPIO_TypeDef GPIOx );
u32 read(GPIO_TypeDef GPIOx, u32 PINx);
void tog(GPIO_TypeDef GPIOx, u32 PINx);
};
[/mw_shl_code]
CPP中实现函数
[mw_shl_code=c,true]void ::GPIO::write(GPIO_TypeDef GPIOx, u32 Value) //写整个GPIOx值
{
GPIOx.ODR = Value;
return ;
}
u32 ::GPIO::read(GPIO_TypeDef GPIOx )
{
u32 temp;
temp = (u32) GPIOx.IDR;
return temp;
}[/mw_shl_code]
[mw_shl_code=c,true]void ::GPIO::write(GPIO_TypeDef GPIOx, u32 Value)[/mw_shl_code]
没有报错
可
为什么呢??
要么写成temp = (u32)(GPIOx.IDR)
其实直接return(GPIOx.IDR)不就行了吗?你的函数返回类型是u32,不用再加u32强制转换的
一周热门 更多>