![](https://img-blog.csdnimg.cn/20190928125911956.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MAPLAB X
努力-养家
超越一切,限界突破
展开
-
使用联合体解决移位问题
一、介绍 当需要将数组转换成32位数据运算时,往往通过移位操作来实现。但是在位数较少的单片机中(8位/16位 MCU),其移位操作是有限的。利用联合体共用内存空间的原理可以有效解决移位问题,将数组的值直接转为32位数据。二、开发环境 MCU:PIC24FJ32GA002 16位 IDE:MAPLAB X 编译器:XC16 v1.20 存储模式:小端模式三、代码实现typedef union{ uint...原创 2021-05-12 18:10:28 · 388 阅读 · 0 评论 -
MAPLAB IDE编译的HEX,用MAPLAB X IPE烧写时代码没响应。
一、现象 使用MAPLAB X IDE附带的MAPLAB X IPE工具烧写程序,直接将工程编译生成的hex文件拿去烧写,可以大大的提高生产效率,避免了传统使用工程直接烧写要打开工程加载文件的繁琐。由于老版工具MAPLAB IDE没有对应的烧写hex文件的方式,所以直接将hex移到MAPLAB X IPE烧写。在烧写过程中发现代码烧写进去但跑不起来的问题,然而用MAPLAB IDE工程直接烧写代码能够正常运行。二、解决方法 经分析得知PIC单片机的时钟、看门狗等配置...原创 2020-11-11 17:46:22 · 1747 阅读 · 0 评论 -
MAPLAB X IDE仿真调试
一、开发环境 操作系统:Windows 10 调试工具:Pickit3 单片机型号:PIC24FJ32GA002二、操作步骤1、连接Pickit3仿真器于单片机对应的烧写口如图示:2、点击调试项目进入调试模式,这时底下输出框显示"运行"代表成功进入调试模式。3、选择断点,该IDE只支持两个断点,使用超过两个时,超过的断点亮灰色代表无效。设置好断点后需暂停然后再重新点击运行才能生效。可以看到在断点处有绿色光标。...原创 2020-09-15 15:33:49 · 4272 阅读 · 4 评论 -
【PIC单片机】关于结构体/联合体 字节对齐及位域操作出现的问题
使用的开发环境为MAPLAB X IDE 1字节对齐的实现如下#pragma pack(1)typedef union{ uint8_t buf[21]; struct Message { uint8_t repeat : 2; uint8_t msgid : 6;...原创 2019-07-12 20:55:29 · 1172 阅读 · 0 评论