Keil5 开发环境中u16和int错用误区
Keil5 开发环境中u16和int错用误区
本人在是准备参加智能小车竞赛的,最近在调试代码中出现了一个问题,在这里先要感谢学长的帮助,不仅帮我解决了这个问题,还对我的学习和调试技巧有了很大的帮助。
我们都知道,u16 是 unsigned short,不能表示负数;但是int可以表示负数,先看下面的一段代码:
void Set_Motor(int left_speed,int right_speed)
{if(left_speed >= 0){SetLeftWhell(0,left_speed);}else{left_speed = fabs(left_speed);SetLeftWhell(1,left_speed);}if(right_speed >= 0){SetRightWhell(0,right_speed);}else{right_speed = fabs(right_speed);SetRightWhell(1,right_speed);}
}
代码出现错误的原因就是在第1行我开始用了u16,后来学长换成了int就成功的解决了。
else if(Gray1 == 0 && Gray2 == 0) { Set_Motor(-30,50); }else if(Gray8 == 0 && Gray7 == 0) { Set_Motor(50,-30); }
看上面部分代码就明白了,我写入了负数,但是u16不能表示负数,这就导致我在调试过程中代码异常,小车执行出现异常,而我一直是认为是这段代码出现了问题,没有写好,浪费了大量时间。
之所以会犯这个错误,忽略了u16和int的区别,我觉得主要原因是这个:
我在学习单片机过程中学习他人的代码中遇到大量地方使用了u8,u16之类的定义,所以我在自己写代码使会常常使用u16,而很少用int,习惯性认为它们通用性,这就是错误的源泉了!
最后再次感谢学长帮助!
Keil5 开发环境中u16和int错用误区相关推荐
- SharePoint【调试,诊错系列】-- 开发环境中不同调试对象的Attach方式
在Sharepoint的开发环境中调试不同的对象有时需要Attach到不同的进程,下面就是一些常见的情况 1.Farm Solution -----W3WP.EXE 2.SandB ...
- STM32入门笔记(02):MDK Keil5 开发环境搭建及新建工程模板教程(SPL库函数版)
目录 Keil5 开发环境搭建 芯片数据手册 Mec 多功能智能小车底盘开发与使用手册 Mec 主控原理图 Mec STM32F103VET6集成主控板资源分配 Mec OLED 显示内容 如何给 S ...
- 让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改
第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改 [文章摘要] Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发 ...
- .Net Core通过NPOI在CentOS 7(Docker)环境中导出Excel报错The type initializer for ‘Gdip‘ 的问题
一.前言 今天在AspNetCore5.0环境中做了一个导出Excel的功能,在开发机器上(windows10)调试正常,但是部署到centos7容器(容器基础环境mcr.microsoft.com/ ...
- Thonny开发环境中显示数据曲线
▌01 开发MicroPython环境 1.简介 MicroPython 是一款运用在单片机上PYthon3 的版本,基于他对于MCU的开发就变成的非常容易.使用 安装 Thonny 软件环境开发PI ...
- 开发环境中实现Lombok消除Java冗余
Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往 ...
- python运行程序的快捷键_在Python集成开发环境中,可使用快捷键()运行程序。...
在Python集成开发环境中,可使用快捷键()运行程序. 更多相关问题 如何理解创新能力测试与创新能力的关系? 直埋线路与埋式电力电缆电压<35kv平行时最小间距为(). 放射性物品装卸作业时, ...
- oracle vm安装增强功能,Linux 开发环境中为VirtualBox安装增强功能
VirtualBox安装CentOS后,再安装增强功能就可以共享文件夹.粘贴板以及鼠标无缝移动,主要步骤如下: 1.yum -y update 2.yum -y install g++gcc gcc- ...
- virtual box linux 安装增强功能,Linux 开发环境中为VirtualBox安装增强功能
VirtualBox安装CentOS后,再安装增强功能就可以共享文件夹.粘贴板以及鼠标无缝移动,主要步骤如下: 1.yum -y update 2.yum -y install g++gcc gcc- ...
最新文章
- zip压缩多个文件,解压时不包含目录层级
- SpringBoot mybatis Interceptor分页实现
- DCMTK:DcmItem类的测试程序
- python代码风格_Python编码风格,看这篇就够了
- C和指针之函数之归以字符形式按顺序打印数字的每位数字(递归和非递归)
- C# 调用 Microsoft.VisualBasic.Collection
- spring junit单元测试
- 手把手教你制作好看实用的可视化驾驶舱
- mysql profiling详解_使用mysql profiling功能剖析单条查询
- ]网易游戏游戏开发工程师
- yxy小蒟蒻的201111总结
- 多线程支持断点续传的文件传输--(摘自大富翁)
- 元宇宙持续引发关注,微软计划明年发布相关产品 | 产业区块链发展周报
- javascript写的日历控件(收藏)
- VS Code:推荐插件 - HTML格式化(包括JS、CSS)
- 安卓九宫格上传图片(微信朋友圈,QQ动态)小demo
- 实现复数类中的运算符重载(含有double类型)
- 1056: 幸运数字 ZZULIOJ
- 在一个excel里面直接批量从谷歌地图抓取经纬度(vba部分)
- 314-Leetcode 堆排序