NRF52840 多个按键时提示内存不足的问题

在使用NRF52840开发项目时遇到内存不足错误,通过调整GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS的中断数目,解决了因配置问题导致的内存空间问题,确保编译后的代码正常运行。

在用NRF52840开发新的项目时, 设备有多个按键。 编译运行时, 提示错误 4 [NRF_ERROR_NO_MEM]。 这个错误经常见,像往常一样, 修改了RAM设置的尺寸, 再编译还是提示内存空间不足。 检查了编译后的代码大小, 并没有超出范围。 后来发现是SDK 配置里对中断的数目有设置, 需要调整。 

将GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 的数目调整为超过按键和其他中断事件的总和。再编译,一切正常。 

我有一份完全可以实现循迹功能和无线遥控功能的代码。具体功能为当系统上电初始状态为循迹模式,按下按键KEY2会切换到遥控模式(此就算检测到黑线也不会自动循迹),当重新按下按键KEY1则会重新返回到循迹模式。并且只有在检测到无线模块存在的候功能才会正常,否则Led3则会一直闪烁。但是自从我添加了一个OLED 屏幕用来实显示循迹或遥控模式下的状态,循迹和遥控功能均已失效,按下按键KEY2也不会正确的切换到遥控模式了。难道是新添加的OLED 通信与原有的代码“打架”(冲突)了?定器?中断?初始化顺序?请仔细做出一些分析,并给出我合理的答案!!!必要的话我可以提供给你在没加入OLED 屏幕显示下的好用代码和逻辑,并于现在我加入OLED 屏幕显示的代码逻辑做出一个合理的比较!!注意尽量不要怀疑我之前的可用代码,它是切实好用的!!就算要新加或者修改逻辑,也尽量不要动我原有的代码!!注意不要随意修改我原来好用代码中的任何东西!!尤其是延函数,定器,中断等。若OLED中需要用到延函数,定器,中断等如果我循迹的相关代码有直接调用即可,若没有则单独写一个新的只服务于OLED的相关函数代码等。仔细思考,并生成修改后的全部代码!!!不要怕麻烦!!也要有必要的注释易于理解!注:无线模块使用的通信方式为SPI,OLED 屏幕使用的通信方式为I2C,使用的单片机型号为STC89C52RC。第一个main.c文件为我一开始好用的初始化顺序逻辑等,第二个mian.c文件为我添加完OLED 显示后的逻辑。现在我会将我没添加OLED 显示之前和添加之后的代码全部给你,请仔细比较并判断出问题到底出现在了哪里!!!前13个代码文件为没添加OLED 显示之前(功能正常)的代码,后面的其余代码文件为添加之后(功能异常)的代码。
最新发布
07-07
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值