使用stm8s_gpio.c在Raisonance下进行编译,出现没法找到stm8s_gpio.c文件的问题。寻找原因,出在下面的语句中,
void GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins)
{
GPIOx->ODR &= (u8)(~(PortPins));
}
以上语句不知为何,编译的时候就是会出现错误。但是如果把 &= 改成 |= 则不会产生错误,编译也能通过。
在gpio.c中寻找,其他地方也有出现过 &= 这样的运算,郁闷了。
请问这是为何吗?还是编译器哪里设置有问题吗?
我这儿没有问题啊
按照楼主说的
我在STVD + Raisonance C compiler 环境下,编译firmware 库中的led demo没有问题
RIDE + Raisonance C compiler, 编译firmware 库中的led demo也没有问题
运行在线调试也都正常
而且我都分别下到评估板上试了一下
在线调试和脱机跑都正常的。
不知道楼主的问题到底是什么,库应该是没有问题的
那也奇怪了
我也觉得不应该是库的问题,不然正确的语句不能编译的话就不能用了。
8bit_mcu,在Ride7下调试的时候需要设置Ride7什么参数吗?我觉得可能是哪里设置的问题。
没改什么
RIDE的环境我不熟,什么也没改,直接跑库里面的例子。
晕
不会又是Ride7 版本的问题了吧。我也没改就直接运行了个例子,可惜就是出来错误了。晕了,Raisonance主页上的不会不是最新的吧
请看看错误的代码和说明
所有错误都应该有提示和说明的。
Ride7对错误的说明
看了Ride7的说明,是说FATAL ERROR,然后后面跟了一个stm8s_gpio.c的路径,说找不到这个文件,但路径下明明有这个文件。
在Ride7的右下角(初始位置),也有说明,但是说This could not happen,
狂汗。
后来把错误的语句注释掉了,编译也通过了。