pic单片机编译经常出现的错误有哪些?
1个回答
展开全部
编译器只能识别语法错误,没办法判断那种单片机会错误,那种单片机不会错。编译出现的错误,只能归结为 LZ 的 C语言水平不够,或者 打字不够细心。
但PIC 单片机使用的 注意点倒是不少,最让人 闹心的就是,PIC 默认打开 AD 功能,要想把引脚当 普通 IO 使用,必须 自行关闭 AD功能。很多初学者,连IO操作都没开始,就必须先操作特殊功能了,你说闹不闹心。
另外,PIC的 硬件堆栈也是个注意点,低级(便宜)的型号,硬件堆栈可能只有 2~3层,高级(贵货)的可以达到16层,普通型号也有7~8层了。这玩意是用来计算“函数 调用 函数 调用 函数”的层数的,主函数算0,主函数开始调用的功能子函数算1,功能子函数调用的驱动子函数算2……
但PIC 单片机使用的 注意点倒是不少,最让人 闹心的就是,PIC 默认打开 AD 功能,要想把引脚当 普通 IO 使用,必须 自行关闭 AD功能。很多初学者,连IO操作都没开始,就必须先操作特殊功能了,你说闹不闹心。
另外,PIC的 硬件堆栈也是个注意点,低级(便宜)的型号,硬件堆栈可能只有 2~3层,高级(贵货)的可以达到16层,普通型号也有7~8层了。这玩意是用来计算“函数 调用 函数 调用 函数”的层数的,主函数算0,主函数开始调用的功能子函数算1,功能子函数调用的驱动子函数算2……
更多追问追答
追问
谢谢,我的意思就是经常出现的语法错误,我想知道Error[000] : Can't find 0x12C words for psect rbss_1 in segment BANK1,这是怎么回事
追答
这种情况,多半是因为你定义变量的时候,前面都加了 BANK1 这个名称;
PIC 单片机的存储器 分了 好多块(BANK),其中很大一部分给各种 特殊寄存器 使用了,只有一小部分提供给用户,充当 通用寄存器、公共RAM 等。
定义变量时,一个劲的使用指定块(BANK0 uchar SSS、BANK1 uint DDDD)就会导致该块可以使用的空间全部填满,最后空间不足,导致该错误发生。
我写了这么久的程序,都用不上这个 BANK,很好奇你指定变量到 指定块(BANK1),是为了什么!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询