【已解决】使用Arduino调试ARM时编译错误error: ordered comparison of pointer with integer zero的解决方法

news2025/1/11 11:44:17

在使用Arduino的资源库对STM32编程时,出现:

error: ordered comparison of pointer with integer zero ('byte*' {aka 'unsigned char*'} and 'int')

编译错误的解决方法。

Arduino因其开源和易用性,丰富的三方资源,受到很多人的喜欢,但在使用Arduino的资源库对STM32编程时,编译时需要用到xpack-arm-none-eabi-gcc库。这就使得原本在avr-gcc库中的代码,在用xpack-arm-none-eabi-gcc编译时发生错误,本文给出了解决此编译错误的实例,希望能起到抛砖引玉的作用,帮您解决类似问题。

笔者在调试中使用Nucleo-64(STM32F446RE)开发板,利用Arduino测试RFID时,编译出现如下错误:

bf7cb3167c764daea35371c19b25f09e.png

错误的文字内容提取如下:

e:\WorkDir\Arduino\libraries\MFRC522\src\MFRC522Extended.cpp: In member function 'MFRC522::StatusCode MFRC522Extended::TCL_Transceive(TagInfo*, byte*, byte, byte*, byte*)':
e:\WorkDir\Arduino\libraries\MFRC522\src\MFRC522Extended.cpp:824:34: error: ordered comparison of pointer with integer zero ('byte*' {aka 'unsigned char*'} and 'int')
  824 |         if (backData && (backLen > 0)) {
      |                          ~~~~~~~~^~~
e:\WorkDir\Arduino\libraries\MFRC522\src\MFRC522Extended.cpp:847:42: error: ordered comparison of pointer with integer zero ('byte*' {aka 'unsigned char*'} and 'int')
  847 |                 if (backData && (backLen > 0)) {
      |   

分析上述提示信息可知,函数MFRC522Extended.cpp中的第824行的34字符处,以及第847行第的42字符处,出现了指针和整数0的比较。要解决此错误,只需按提示信息修改上述程序就可以了,方法如下:

按提示文件的路径(e:\WorkDir\Arduino\libraries\MFRC522\src\MFRC522Extended.cpp)打开该文件,找到编译错误的地方,第824行~826行代码为:

if (backData && (backLen > 0)) {
	if (*backLen < in.inf.size)
		return STATUS_NO_ROOM;

第847行~849行代码为:

if (backData && (backLen > 0)) {
		if ((*backLen + ackDataSize) > totalBackLen)
			return STATUS_NO_ROOM;

将第824行和第847行处的0,改为(byte *)0,修改后的代码分别为:

if (backData && (backLen > (byte *)0)) {
	if (*backLen < in.inf.size)
		return STATUS_NO_ROOM;
if (backData && (backLen > (byte *)0)) {
	if ((*backLen + ackDataSize) > totalBackLen)
		return STATUS_NO_ROOM;

 重新编译,看看是不是完美通过了?!

 

 

^_^

enjoy!

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android无线调试

1、首先在系统环境变量——》新建——》"ANDROID_ADB_SERVER_PORT"&#xff0c;值&#xff1a;手机的端口号 2、通过adb kill-server&#xff0c;adb start-server&#xff0c;重启abd 3、最后使用&#xff1a;adb connect ip:port&#xff08;如&#xff1a;192.16…

【SpringBoot】SpringBoot 纯后端项目如何自定义异常页面(Whitelabel Error Page)

文章目录 背景安排方案步骤 验证 背景 一个短链服务&#xff0c;业务将长链接给我&#xff0c;我转换成短地址&#xff0c;用户访问短地址时&#xff0c;我再做redirect&#xff1b;没有前端&#xff0c;纯后端项目短链会有过期时间&#xff0c;过期后将返回错误信息某一天一个…

GPT 专业应用:如何让GPT策划方案

身为一名职场打工人&#xff0c;或多或少会面临需要写策划案的难题。 不管是策划一场线下活动&#xff0c;还是策划业务发展的方向&#xff1b; 甚至到生活中还需要策划婚礼&#xff0c;策划房屋装修&#xff0c;策划和朋友的聚会等等。那么如何快速积累经验&#xff0c;找准…

JavaScript全解析——Ajax教程(上)

AJAX 是Asynchronous JavaScript And XML的缩写。 它不是一种编程语言。它是一种基于HTML、CSS、JavaScript 和 XML&#xff0c;让开发更好、更快和更有互动的 Web 应用的技术。 什么是ajax 认识前后端交互 前后端交互就是前端与后端的一种通讯方式&#xff0c;主要使用的技…

关于一个C++项目:高并发内存池的开发过程(二)

文章目录 内存释放操作的总述thread cachecentral cachepage cachecentral cache的TODO实现何时维护这张映射表&#xff1f; tc_dealloc的修改申请大内存的适配写在最后 上篇文章梳理了内存申请操作的流程&#xff0c;大概测试了一下&#xff0c;没有发现什么问题。这篇文章将梳…

Simulink 自动代码生成电机控制:软件在环测试(SIL)步骤总结

目录 前言 模型配置 SIL模型生成 模型仿真对比 总结 前言 电机模型仿真可以叫做模型在环测试&#xff08;MIL&#xff09;&#xff0c;至于SIL就是软件在环仿真测试&#xff0c;说白了就是验证生成的代码有没有问题&#xff0c;如果有问题那在模型里面修复&#xff0c;不要…

点餐小程序实战教程05-点餐功能开发

目录 1 点餐需求分析2 变量定义3 点餐分类功能实现4 菜品展示功能开发5 实现切换分类时过滤数据总结我们上一篇设计了点餐分类及点餐信息数据源的功能,本篇我们介绍一下如何开发点餐功能。 1 点餐需求分析 看一下页面是分为两部分,左侧是侧边栏导航,用来展示点餐的分类信息。…

论文解读 | 《基于采样的MPC控制的约束视觉》

原创 | 文BFT机器人 引言 Introduction 视觉伺服控制方案&#xff0c;如基于图像的(IBVS)&#xff0c;基于姿态的(PBVS)或基于混合的(HBVS)&#xff0c;在过去的几十年里得到了广泛的发展。众所周知&#xff0c;要处理的主要问题涉及局部极小点或奇异点的存在、可见性约束、联合…

缺少ssl模块

nginx采用源码安装方式 1、 查看是否有模块&#xff0c;如下没有 /usr/local/nginx/sbin/nginx -V1.1、 备份nginx配置文件 cp -a nginx.conf nginx.conf.bak2、 进nginx安装包目录 ./configure --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_mo…

将 NGINX 部署为 API 网关

现代应用架构的核心是 HTTP API。HTTP 支持快速构建和轻松维护应用。HTTP API 提供了一个通用接口&#xff0c;因此不必考虑应用的规模大小&#xff0c;无论是单独用途的微服务还是大型综合应用。 HTTP 不仅可以支持超大规模互联网&#xff0c;也可用于提供可靠和高性能的 API …

解决一个诡异的java空指针问题的案例

最近在看java类加载器的资料&#xff0c;于是写了一个自定义类加载器测试一下&#xff0c;结果就悲剧了&#xff0c;直接报空指针&#xff01; 跟着报错指引看代码37行是什么东东&#xff1f; 就是一个inputStream, 然后看看它的定义&#xff1a; 这玩意就是从classpath读取cla…

html实现一个一闪一闪的按钮,CSS实现一个一闪一闪的按钮,Css闪烁点标,css设置按钮层次感,css按钮美化,CSS按钮动画过渡,CSS按钮添加阴影

效果 动态 静态 实现 底部多加了几个过渡按钮 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>#app {margin: 2% auto;text-align: center;}.lay-btn-box {position: relative;display: …

【达梦数据库】达梦数据库windows安装

目录 1.选择语言与时区 2.安装向导 3.许可证协议 4.验证 Key 文件 5.选择安装组件 6.选择安装目录 7.目录确认 8.开始安装 9.安装过程 10.安装完成 11.创建数据库实例 12.创建数据库模板 13.数据库目录 14.数据库标识 15.数据库文件 16.初始化参数 17.口令管理…

VoxelNeXt:用于3D检测和跟踪的纯稀疏体素网络

VoxelNeXt:Fully Sparse VoxelNet for 3D Object Detection and Tracking 目前自动驾驶场景的3D检测框架大多依赖于dense head&#xff0c;而3D点云数据本身是稀疏的&#xff0c;这无疑是一种低效和浪费计算量的做法。我们提出了一种纯稀疏的3D 检测框架 VoxelNeXt。该方法可以…

电脑断电后无法正常启动怎么办?

电脑断电后无法正常启动是一个很常见的问题&#xff0c;其实除断电外&#xff0c;电脑强制关机后无法正常启动也很常见&#xff0c;出现这个问题一般是由硬件导致&#xff0c;可能是内存、电源、主板、显卡、硬盘等硬件出现问题&#xff0c;尤其是一瞬间断电再来电&#xff0c;…

全网最牛最全面的接口自动化接口关联的三个层次

一、&#xff08;接口查询的条件分析&#xff09; 1.一般来说&#xff0c;在所有平台中&#xff0c;凡是往数据库里增加接口&#xff0c;必然有相应的查询接口和修改操作的接口 2.接口的后台服务除了要把数据返回给我们之外&#xff0c;还要把真正对数据的修改操作写入数据库…

linux系统学习

本文建立于Linux的课堂学习 文章目录 Linux基础1. Linux操作环境1.1 简述Linux文件类型有哪些1.2 简述Linux的文件访问权限1.3 简述shell的功能&#xff0c;常见的shell有几种1.4 列举几个常用的Shell环境变量以及用途 2. Linux Shell命令操作2.1 简述在Linux Shell中获取帮助…

数据结构总结6:八大排序

后续会有补充 排序 排序&#xff1a;按照某个或某些关键字的大小&#xff0c;递增或递减排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;这些记录的相对次序保持不变&#xff0c…

如何完美卸载VS2015(2023年5月份实测有效)

使用控制面板卸载VS2015&#xff0c;出现正在配置您的系统&#xff0c;这可能需要一些时间&#xff0c;然后就出现卡住半个小时第二行的条都没有动的问题&#xff0c;这里提供vs2015以及以前版本的卸载方式 问题产生原因:他需要下载一些东西&#xff0c;然后由于你懂的网络原因…

基于yolov3训练自己的数据集

训练数据集的教学视频链接 42. 第六章&#xff1a;基于YOLO-V3训练自己的数据集与任务_哔哩哔哩_bilibili 数据打标签 下载labelme标注工具 通过pip install labelme下载&#xff0c;打开anaconda prompt&#xff0c;切换到下载labelme的环境&#xff08;我的是pytorch&…