(请教)使用C++写代码,出现以下问题。

2019-07-21 01:29发布

在写一个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] 没有报错




为什么呢??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
sworssman
1楼-- · 2019-07-21 04:40
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 09:24
帮顶。。。。
hhlh2l
3楼-- · 2019-07-21 11:08
我猜是 temp = (u32)GPIOx.IDR的问题,
要么写成temp = (u32)(GPIOx.IDR)

其实直接return(GPIOx.IDR)不就行了吗?你的函数返回类型是u32,不用再加u32强制转换的
sworssman
4楼-- · 2019-07-21 12:35
回复【4楼】hhlh2l:
---------------------------------
开始是直接     return IDR的,就是因为报错才转了一下,还是不行

一周热门 更多>