【转】PIC配置字产生的各类奇怪-神奇的问题

在使用MPLAB X IDE和XC8编译器开发PIC18F25K22项目时,遇到参数传递错误、全局变量异常、不同编译模式结果不一致以及在两块单片机上表现不一的问题。经过排查,发现是配置字中启用了CPU扩展指令集(XINST)而编译器未选择扩展模式导致。解决方案是确保在编译选项中启用MPASM/C17/C18 SUITE的扩展模式选项,以匹配配置字设置。
摘要由CSDN通过智能技术生成

MPLAB X IDE 2.26
XC8 V1.21 PRO
PIC18F25K22



问题表现:1、参数传递过程中发生改变

在单片机内运行时,调用任意一个带参的子函数,例如unsigned char I2cWriteSubAddr (unsigned char , unsigned char , unsigned char);
参数都会被丢失或者改变。特别是多个参数里面的第一个参数。
例如
void main(void)
{
I2cWriteSubAddr(0x10,0x05,0x42);
while(1);
}
在 I2cWriteSubAddr();函数的实现里面加入一个串口打印就可以看到,第一个参数变成了0x02,不是0x10了!!!!!
2、全局变量随意变化
另外,我用全局变量也规避不了这个问题࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值