以前从来没有接触过PIC的单片机,相当于所有的东西都从头来,下面是学习的过程,希望能有所帮助 一、PIC18F16Q41Curiosity Nano 评估套件收到了, 京东快递, 先看下图
二、下载及安装开发环境 1、MPLABXIDE开发环境,www.microchip.com-->Tools and Software-->MPLAB® X IDE下拉到下载位置,下载最新版本的,下载地址: https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide 2、1、MPLAB XC开发环境,www.microchip.com-->Tools and Software-->MPLAB® XC Compiler,下拉到下载位置,下载最新版本的,下载地址:https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers
3、安装开发环境,安装MPLABXIDE,按照提示一步步的进行就可以了,提示安装两个驱动,也都同意就行;安装MPLAB XC8,按照提示一步步的进行,在下图时要将两个都选择,自动把环境变量配置好 三、安装MCC(图形化配置生成代码)1、打开MPLAB X IDE,Tools-->Plugins 2、打开Plugins选择Available Plugins,下拉找到MPLAB Code Configurator,勾选后,点击下方的Install,按照提示进行安装MCC,会出现下载进度条 三、写一个LED亮灯程序
1、插上开发板到电脑USB,会弹出这个Kit的资料,可以选择下载资料(下载原理图),打开MPLAB X IDE ,点南File--->New Project 2、选择Microchip嵌入式--->独立项目--->Next 3、根据开发板,选择芯片型号,注意要插上开发板,最后的那个器件就会出现 4、选择编译器,选择下图所示 5、输入项目各称和项目存储位置,占击Finish完成配置,选择下图所示 6、点击MCC,进行寄存器配置等,下图所示 7、系统时钟配置等,下图所示,内部时钟,8M,使能PLL,时钟分频为1(不会频),不使能看门狗 8、根据原理图,RC0接的是按键,选择Pin Module,在最右侧的芯片示意图的RC0右键选择Pin Module|GPIO|input,配置好按键IO口 9、根据原理图,RC1接的是LED,选择Pin Module,在最右侧的芯片示意图的RC1右键选择Pin Module|GPIO|output,配置好按键IO口 10、配置好的IO口如下图所示,注意因为按键的外部无上下拉电阻,需用内部的上拉电阻,RC0选择WPU 11、配置好的IO口如下图所示,注意因为按键的外部无上下拉电阻,需用内部的上拉电阻,RC0选择WPU,配置完成后,点击左侧的Ge,注意:每次改完图形化配置后,都必须点击此按钮,此按钮是图形化配置工具生成代码的按钮,结果在最下方的Output 12、点击Files--->展开项目名---->双击main.c添加代码
13、IO_RC1_Toggle()来源是pin_manager.h文件中,所有的API都可以在相应的文件中去寻找,相应的使用范例也都在注释文档中
14、点击下图所示的按钮,进行编译,编译结果如下图 15、点击下图所示的按钮,进行下载到开发板,下载结果如下图 16、点击下图所示的按钮,进行下载到开发板,下载结果如下图,完成第一个程序 17、点击MCC--->Available Resources--->EXT_INT绿色+位置下图所示的按钮,配置外部中断程序,使用外部中断作为按键的检测,外接按键的是下降沿为按下按键,上升沿为弹起按键
18、点击Interrupt Module--->勾选Vectored Interrupt Enable--->将INT1I、INT2I勾选取掉,注意此时为高优先级中断,High Priority勾选了,表示为高优先级中断,相应开中断时也选择高优先级中断打开。
19、点击Gener...生成代码 20、点击Files-->双击ext_int.c在代码中添加一个标志位,此位置为中断服务程序
21、点击Files-->双击main.c添加如下所示代码,注释掉闪灯代码,点击编译按钮编译代码,点击下载按钮下载代码,运行观察一下,按一个按键,灯的状态变换一次。 22、关于中断的服务函数查找方法,在库函数树中找到interrupt_manager.h文件,双击进入后,找到INTERRUPT_GlobalInterruptHighDisable()为开总中断函数。 23、配置串口通信,点击MCC,进入MCC配置页面,点击UART1前的绿色+号,将UART1添加到系统中。 24、配置串口通信,如下图所示配置波特率、使能串口中断,其中最后一项是利用调试器的模拟串口和计算机通信,勾选Redirect STDIO to UART,可以利用printf函数直接将数据发送到计算机。同时将IO端口配置成UART模式,分别在RB5、7右键,选择UART1的RX和TX。
25、配置串口通信中断,如下图所示进行选择。 26、配置完成,生成代码。
27、双击uart1.c,修改如下部分代码,实现功能是接收到一个字节就发送出去,收什么发什么。 28、双击main.c,修改如下部分代码,实现初始化完成后发送system start!,按键按下后,发送press button!,每按一次就发送一次。另外,中断模式的按键可以考虑加一个电容做硬件防抖,也可以考虑软件防抖,这里主要是为了实现外部中断的功能。 8、测试结果,可以看到下载程序后发送了system start!;按一次按键发送一次press button!;发送12,收到12,前两次不是12不知道是什么原因,暂时没有时间,就先不找问题在哪了,后面有时间了再好好找找。此实验实现在外部中断功能,串口中断接收功能,串口发送数据功能,IO口输入功能,IO口输出功能。
|