MCU
文章平均质量分 75
Beatfan_N
这个作者很懒,什么都没留下…
展开
-
【PIC32MZ】OLED12864 I2C显式示例
本篇主要讲述如何使用PIC32MZ来点亮OLED12864。OLED12864可以控制一个一个像素点,所以需要自建字库,有专门生成的软件,字库为字母字符,放到最后面。注意不同12864排列或者共极不同,则需要自行取模。I2C显式示例" NAME="image_operate_77121491796117902" ALT="【PIC32MZ】OLED12864 I2C显式示例" src="h原创 2017-04-14 11:02:50 · 3341 阅读 · 0 评论 -
【MPC5744P】劳特巴赫调试器Trace32的使用方法
对于大部分MCU来说,官方IDE一般都带有调试功能,配合JTAG接口使用即可,也支持变量查看、断点等功能。绝大多数工业开发的中小型程序,使用自带调试器即可,价格便宜,几十到几千不等。在某些特殊领域(例如汽车行业)或者超大型项目中,对调试的要求就更高了,例如捕捉某些偶发性的问题、死机调试、代码分析、函数运行时间测试等。这时,就需要一个强大的调试工具了,而劳特巴赫就是一个专门为各个不同厂商的芯片提...原创 2018-12-07 16:09:21 · 41165 阅读 · 8 评论 -
【MPC5744P】Flash 结构、启动原理以及内存映射
与大部分的MCU相同,MPC5744P的Flash、RAM以及外设都映射到内存地址中了。以下为映射地址范围: MPC5744P Flash结构如下: 0x00000000-0x003FFFFF -- reserved 0x00400000-0...原创 2018-12-21 15:23:39 · 7602 阅读 · 22 评论 -
【MPC5744P】S32DS编译生成Hex文件的方法
S32DS中编译生成MPC5744P项目时,默认只生成elf文件,elf文件包含众多调试信息,因而相较于hex文件,体积要大得多,而且需要另外开发elf解析模块,不如hex通用。 设置生成Hex的方法如下:1、项目中右键->Properties2、在C/C++ Build -> Setting -> Build Steps -> Post-build s...原创 2018-12-17 11:53:14 · 5680 阅读 · 1 评论 -
【MPC5744P】Hex文件解析
MPC5744P采用的标准IntelHex格式,一个地址为一个字节。1、hex文件以ascii形式,按照行来记录数据2、每一行从:开始,每至少2个字符表示一组16进制数据,格式为 :BBAAAATTHHHH....HHHCC BB -- 16进制,表示此行数据长度字节数,表示HH的数目 AAAA -- 16进制,表示数据记...原创 2018-12-28 08:32:27 · 1449 阅读 · 2 评论 -
【MPC5744P】Bootloader下位机开发(CAN通讯)
Bootloader下位机及用户APP范例直接下载:https://download.csdn.net/download/u010875635/10882172此下位机开发通讯采用CAN,所有Hex文件解析工作在上位机,下位机尽可能避免复杂操作,以加快烧录速度。使用的为NXP DEVKIT-MPC5744P开发板。为保证烧录过程不出现错误,上下位机采用一问一答模式,上位机发送一帧数据后...原创 2018-12-28 08:33:03 · 4900 阅读 · 31 评论 -
【MPC5744P】Bootloader上位机开发(CAN通讯)
上位机源码范例直接下载:https://download.csdn.net/download/u010875635/10882176此处上位机采用C#编写,界面框架为WPF。为保证烧录过程不出现错误,上下位机采用一问一答模式,上位机发送一帧数据后,下位机接收处理完毕再回馈给上位机,上位机再决定下一步动作。核心代码逻辑部分,将命令分成EntryBootloader, Reset, Dat...原创 2018-12-28 08:33:43 · 8620 阅读 · 36 评论 -
【MPC5744P】S32DS中Processor Expert自动生成代码工具使用教程(三) 多个版本SDK的处理
一般来说,安装完包含MPC5744P相关SDK的更新包之后,Processor Expert中会存在多个SDK,这在添加组件时会带来较多困扰,SDK之间交叉使用可能会出现问题,因此,我们要将不需要的SDK先禁用。以UPDATA7为例,里面包含了02-06的SDK,我们不需要,将其禁用掉。这样后面使用Processor Expert模块时,就不需要考虑兼容性问题了。 ...原创 2018-12-29 08:31:56 · 4012 阅读 · 2 评论 -
【MPC5744P】S32DS中Processor Expert自动生成代码工具使用教程(四) GPIO配置之点亮LED
一、新建项目新建一个S32SD项目,名称为led_test,芯片选择MPC5744P,SDK选择最新版本,注意不要选择FreeMaster,当前版本自动配置有些问题,我们后面手动配置。若是以后有更新,大家可以添加FreeMaster自动配置试试。二、Processor Expert配置新建项目完毕,我们会在项目最底下看到ProcessorExpert.pe文件,在菜单栏显...原创 2018-12-29 08:44:24 · 11109 阅读 · 12 评论 -
【MPC5744P】S32DS中Processor Expert自动生成代码工具使用教程(五) FlexCAN使用
本篇开始讲解FlexCAN的使用方法,采用SDK自动生成驱动。新建工程CAN_Test,具体步骤不再重复,新建完毕,打开Processor Expert界面,在Components Library中添加flexcan,添加时会自动增加辅助模块(若是没有禁用其它版本SDK,则会弹出提示,此处会有多个版本供选择,不同版本兼容性可能有问题)。 添加完,在Components中我们可以看到...原创 2018-12-29 09:42:02 · 7924 阅读 · 17 评论 -
【MPC5744P】内部Flash读写
MPC5744P内部Flash相当大,除了存储代码,多余的空间还可以另作它用,例如参数存储,故障存储,当然,Bootloader也是依赖于Flash读写。内部Flash的结构请参考上一篇关于Flash结构及启动原理的说明:https://blog.csdn.net/u010875635/article/details/85162135读取:一次读取256位。擦除:一次擦除一个block...原创 2018-12-24 13:41:54 · 3518 阅读 · 32 评论 -
【飞思卡尔 MC9S12】PRM文件与内存映射(Flash、RAM、EEE)
本篇介绍飞思卡尔MC9S12系列芯片基本内存映射知识,主要是其特有的分页机制。一般的小型项目可能很多人都不会去专门了解这些内容,但是对于大型项目(代码超过16KB 或 内部变量过多超过4KB),势必要在默认设置下修改能适配项目的配置,以便于能灵活使用。另外BootLoader的编写也是要了解这方面的内容才能进行。MC9S12(X)有2个大的系列,区别是带不带XGATE(有X后缀的是带有XGAT...原创 2019-07-04 08:14:49 · 5250 阅读 · 0 评论 -
【飞思卡尔 MC9S12】内部Flash读写
上一篇:【飞思卡尔 MC9S12】PRM文件与内存映射(Flash、RAM、EEE)上一篇讲到PRM文件与内存映射,其中有个重要寄存器叫做GPAGE,可以全局访问所有地址范围,Flash操作也是基于这个地址。在讲述Flash读写之前,有一个重要概念要普及,就是Flash操作代码不能存储在被操作的Flash物理块中,例如我要擦除一个Flash中某一个扇区内容,这个擦除动作的代码不能存在这个F...原创 2019-07-04 08:19:14 · 5582 阅读 · 0 评论 -
【飞思卡尔 MC9S12】内部D-Flash模拟EEPROM
上一篇:【飞思卡尔 MC9S12】内部Flash读写上一篇讲到内部Flash的读写,本篇讲述使用D-Flash模拟EEPROM。其实使用P-Flash也可以模拟,只不过D-Flash的Page更小(擦除复写占用更少时间),而且不会占用代码空间。最近刚换工作,一直比较忙,更新会比较慢。若是需要源码可自行下载:https://download.csdn.net/download/u010875...原创 2019-07-04 08:23:49 · 4457 阅读 · 2 评论 -
【飞思卡尔 MC9S12】BootLoader 下位机
上一篇:【飞思卡尔 MC9S12】内部D-Flash模拟EEPROM本篇讲述BootLoader下位机的开发。刚到新公司第三天就接了一个项目,搞到现在才局部完成,更新比较慢了。先上传源码比较实际,再介绍基本功能。源码地址:https://download.csdn.net/download/u010875635/11692136实际上搞定CAN通信和Flash读写,Bootlo...原创 2019-07-04 08:26:46 · 3864 阅读 · 3 评论 -
【MPC5744P】S32DS中Processor Expert自动生成代码工具使用教程(二) FreeMaster调试
对于使用调试口,下位机不需要做任何特别的设置,直接按照链接中设置方法来设置上位机即可,注意FreeMaster只能监测下位机中的全局变量。链接地址:https://blog.csdn.net/u010875635/article/details/84789579 若是使用普通通讯口,则下位机需要做一些额外的工作。由于暂时的版本FreeMaster自动配置的Bug,会导致许多编译错误,所...原创 2018-12-06 15:38:07 · 5385 阅读 · 0 评论 -
【MPC5744P】S32DS中Processor Expert自动生成代码工具使用教程(一) 开发环境搭建
MPC5744P是NXP近几年推出来的主打安全功能的双核MCU,非常适合在汽车控制器相关产品中使用,非常强大。但是强大的同时,也意味着开发难度增大。MPC5744P外设功能相关的寄存器非常之多,且对应的参考教程非常少,像STM32之类的工业MCU开发难度根本无法与之相比,早期只能依据官方参考手册上寄存器的描述来配置外设,而官方英文原版参考手册超过三千页,且寄存器之间的相关关联描述语焉不详,学习...原创 2018-12-06 10:12:07 · 8602 阅读 · 5 评论 -
【dsPIC33E】内部Flash读写
基于某些安全考虑或者降成本,我们不希望使用外部存储器件,但有时我们由需要记录一下参数,确保断电不丢失,这时,富余的内部代码存储Flash就派上用场了。不同于外部存储器,几乎所有的内部Flash读写都十分麻烦,甚至需要使用到汇编。下面我们将讲述dsPIC33E如何读写内部Flash,此处以dsPIC33EP256GP506为例。 示例代码下载:https://download.csd...原创 2018-12-01 15:13:43 · 5344 阅读 · 3 评论 -
【PIC32MZ】PWM呼吸灯
PWM类似于开关电源,将高电压中间插入地脉冲,来将有效电压降低,在某些电压不敏感器件中,可以实现电压降低的效果。例如LED的亮度变化。前文有说过,Harmony的Dynamic还不是很完善,在PWM上就有体现,PWM需要OC与静态Timer配合,如果有其它Timer在在使用Dynamic,不想全部改为Static,可以直接使用PLIB函数,可以从其它Static函数往底层去看,也是通过stat...原创 2017-04-14 11:02:44 · 1464 阅读 · 0 评论 -
【PIC32MZ】Timer定时器
PIC32MZ有多达9组Timer,但是并非任何时候都能同时使用,主要是在使用32位计数器时的问题。Timer的2、4、6、8定时器支持16位和32位,但是在使用32位,占用的ID并非自身,而是下一个。以Timer4为例,在system_interrupt中可以看到,若是使用16位模式,显示为Timer4,而使用32位时,其使用的是Timer5。如果同时使用Timer4的32位和Timer5,原创 2017-04-14 11:02:41 · 1664 阅读 · 0 评论 -
【PIC32MZ】Usart串口通讯
串口通讯是一个很成熟的通讯协议,几乎所有MCU都配有串口,本篇将述在Harmony中如何使用Usart,使用设备为PIC32MZ2048EFH,其他PIC32MZ基本相似。以下使用的是Harmony的动态驱动,要注意动态驱动的使用规则,动态驱动排序为Driver中配置顺序,即InstanceIndex,而非Usart ID的顺序。 串口使用流程如下,以串口2为例: 1、配置串口驱动原创 2017-04-14 11:02:38 · 2897 阅读 · 0 评论 -
【PIC32MZ】点亮LED
MCU开发第一步都是点亮LED,就跟软件的Hello World一样,先开始第一步吧。新建一个项目,参考开发环境搭建,具体我就不写了。1、配置时钟,这个在Clock Diagram中配置,点击Auto-Calculate,输入系统主频即可,最高可达252MHz,这里没有涉及到其他外设,仅设置主频即可。Hello World 之 点亮LED" TITLE="【PIC32MZ】MCU H原创 2017-04-14 11:02:33 · 1243 阅读 · 0 评论 -
【PIC32MZ】开发环境的搭建
Microchip在新一代的32位PIC芯片采用了一种新的架构来进行开发,这就是Harmony。Harmony类似于ST的STM32CubeMX,将芯片Library封装到中间层,采用统一接口,仅底层不同,不过底层已经由Microchip已经写好,所以,用户上层的同一份代码,理论上稍加修改MHC配置,就可以很方便的移植,有点像Qt的意思了,一次编写,处处编译(不同于Java)。Harmon原创 2017-04-14 11:02:30 · 2996 阅读 · 2 评论 -
【PIC32MZ】调试设置
PIC32MZ有两个调试端口,ICSP1和ICSP2,PIC32MZ EF Start Kit开发板上使用的是ICSP2(详细查看官网电路图),而Harmony默认为ICSP1,无法直接调试,需要在Harmony的device中做一些配置。DEVCFG0中前四个,第三个最重要,不同板子通道可能不同Background Debugger Enable onJtag Enable onI...原创 2017-05-01 12:48:54 · 1803 阅读 · 0 评论 -
【PIC32MZ】USB HID通信
范例直接下载:https://download.csdn.net/download/u010875635/10689882在设备通信中,UART非常常见,也是最简单的,但是,PC尤其是笔记本基本都舍弃了传统的UART端口,只能使用usb转UART的IC来做信号转换,这样效率低,而且还要针对IC安装专门的驱动,非常不方便,而在有些特殊设备上,甚至驱动无法安装,是否可以不安装驱动与PC通信呢?...原创 2017-06-15 11:23:01 · 3968 阅读 · 0 评论 -
【PIC32MZ】按键中断
新建工程参考前面两篇帖子。Harmony中,使用GPIO中断非常方便,仅需三步:一是将需要使用的GPIO设为Input;二是勾选ChangeNotify(如果想要设置默认状态,还可以设置上拉或者下拉);三是在system_interrupt中调用中断函数。 以下为示例,这里是按下按键接地,低电平,包含长按以及短按处理: 可以在短按函数和长按函数里面原创 2017-04-14 11:02:36 · 1390 阅读 · 0 评论 -
【PIC32MZ】I2C通信
I2C跟串口一样,仅需2根线通讯即可,在某些引脚紧张的应用中非常有用,不过I2C相比于串口,通讯协议更简单一点,距离也更短一些,仅限于板间通信。大多数IC都支持I2C协议。 I2C的时序图为: 通信" TITLE="【PIC32MZ】I2C 通信" />I2C数据传输是在起始条件和停止条件之间。起始条件和停止条件都是SCL为高一段时间产生。起始条件为SDA从高变为低,停止条件为SD原创 2017-04-14 11:02:47 · 1648 阅读 · 0 评论 -
【MPC5744P】FreeMaster上位机配置
FreeMaster调试相对于劳特巴赫的工具可能没有那么强大,但是它有一个优点,就是免费,也可以实时观察变量,而无需停下来,不过需要注意的是变量必须是全局变量。FreeMaster本质上和普通上位机没有太多区别(比一般上位机多了调试口连接),但是对于一般调试而言,可以大大减少开发者自行开发上位机的必要性。FreeMaster上位机可以直接加在elf文件并且获取其中的符号对应的地址,因此动态...原创 2018-12-04 15:54:38 · 6775 阅读 · 28 评论 -
【dsPIC33E】Bootloader(一)Bootloader的介绍与Flash结构
对于嵌入式开发而言,Bootloader几乎与操作系统同等重要,它可以让我们摆脱MCU官方工具,定制自己的烧录工具,不仅提高产品辨识度,同时也大大减少了对外引脚数量(例如兼容通信的Uart或CAN等,而不需要另外接JTAG)。要开发Bootloader,相对于普通程序,是有一定难度的,这其中涉及到MCU的工作原理、内部存储结构等,而且仅仅依靠C语言可能无法完成,有时需要配合汇编来精确执行特殊指...原创 2018-11-30 16:51:08 · 5736 阅读 · 26 评论 -
【dsPIC33E】Bootloader(二)Microchip的Hex文件结构介绍
市面上大多数单片机的Hex文件都是基于Intel Hex,而dsPIC33E也不例外,dsPIC33E支持的格式为Intel HEX32(INHX32)。hex文件以ascii形式,按照行来记录数据每一行从:开始,每至少2个字符表示一组16进制数据,格式为 :BBAAAATTHHHH....HHHCC BB -- 16进制,表示此行数据长度字节数,...原创 2018-11-30 16:52:03 · 3227 阅读 · 8 评论 -
【dsPIC33E】Bootloader(三)Bootloader下位机
前面2节讲述了dsPIC33E的Flash存储结构以及Hex格式,接下来开始讲述如何编写Bootloader下位机和上位机。本节讲述下位机的设计,考虑到执行效率和烧录时间,我们将主要解析工作放到上位机中,因为PC的执行速度远高于MCU。在上位机中,我们将Hex文件解析成一组一组的地址和数据组合,然后将一个地址和数据打包发送到Bootloader,Bootloader将其写入对应地址内。我们...原创 2018-11-30 16:52:52 · 2990 阅读 · 5 评论 -
【dsPIC33E】Bootloader(四)Bootloader上位机
前面已经将下位机部署完毕,本节将讲述上位机。上位机的工作相对比较简单,主要就是解析Hex文件,然后将数据发送到下位机。注意发送的Hex文件只能是User App,不能带有Bootloader,否则可能会覆盖之前的Bootloader,导致出错。上位机源码下载地址:https://download.csdn.net/download/u010875635/10819828 上位机...原创 2018-11-30 16:53:53 · 3922 阅读 · 6 评论 -
【飞思卡尔 MC9S12】BootLoader 上位机
上一篇:飞思卡尔 MC9S12】BootLoader 下位机本篇讲述BootLoader上位机开发。源码地址:https://download.csdn.net/download/u010875635/11692122此上位机采用WPF框架,C#语言开发,支持周立功的CAN设备和ValueCAN。由于手头上暂时没有硬件,无法实际演示,大家先凑合看示例图。注意,有很多人操作误区在...原创 2019-07-04 08:28:40 · 4458 阅读 · 9 评论