本帖最后由 hu9jj 于 2024-9-20 08:37 编辑
#申请原创#
两周前收到核心板之后,只因为迟迟无法进入MCC,测试工作一度搁浅。在热心坛友的帮助下,参照了诸多的帖子,在我的台式电脑上仍然无法进入MCC,后来我在笔记本上测试,可以进入MCC,因此初步判断也许是操作系统的问题:我的笔记本上安装的是WIN10,而台式电脑上是WIN7。由于笔记本的屏幕仅有11.3英寸,字体太小看不清楚,调大字体后显示不全操作极不方便,于是就准备升级台式电脑上的操作系统。升级之后果然就很容易地进入MCC了,由此开始继续测试。
这次同时测试了通过按键控制LED闪烁的间隔时间,并将间隔时间通过串口通讯发送到电脑。
首先按部就班地建立好测试项目,这个过程大家的帖子里都有详细叙述,我在这里就不介绍了。唯一需要提醒的是在最后点击“完成”前需要选择好中文,否则在代码和注释中就无法输入汉字了。详见下图:
如果您在建立项目时未选择中文,当然也可以在之后打开项目的属性窗口进行修改。
项目建立好之后就可以进入MCC进行配置了,下图为本次测试配置好的界面:
根据核心核心板的电路图得知,板载LED灯的引脚为RC2,高电平点亮;按键引脚为RC3,低电平触发;串口通讯的TX引脚为RC4,RX引脚为RC5。先将所需的设备添加进项目之后,再对引脚进行配置。为方便延时,可以在定时器选项里添加DELAY项,这样就可以自动添加毫秒和微秒延时函数,省得自己去计算和写代码。
串口通讯我使用的是默认9600速率,此时要注意开启redirect printf of UART,如上图红色箭头所指,否则就不能在程序中使用PRINTF重定向打印功能。这个功能在代码调试过程中作用很大,可以将printf语句插入在需要的位置,将程序运行的相关数据信息发送到电脑上,然后通过串口助手来观察。
下图为串口助手信息的截图:
这是测试的代码:
#include "mcc_generated_files/system/system.h"
#include "mcc_generated_files/timer/delay.h"
uint8_t Keys=0;
/*
Main application
*/
int main(void)
{
uint16_t i=100;
SYSTEM_Initialize();
// If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
// If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global and Peripheral Interrupts
// Use the following macros to:
// Enable the Global Interrupts
//INTERRUPT_GlobalInterruptEnable();
// Disable the Global Interrupts
//INTERRUPT_GlobalInterruptDisable();
// Enable the Peripheral Interrupts
//INTERRUPT_PeripheralInterruptEnable();
// Disable the Peripheral Interrupts
//INTERRUPT_PeripheralInterruptDisable();
printf("LED闪烁+USART通讯测试...\n");
while(1)
{
if(0==IO_RC3_GetValue()){
DELAY_milliseconds(10);
while(0==IO_RC3_GetValue()){
if(Keys<250)
Keys++;
}
}
if(Keys>0){
Keys=0; //清除按键标志
i<<=1; //延时时间加倍
if(i>5000)
i=100; //延时超过5秒则回归100毫秒起点
}
IO_RC2_Toggle(); //翻转LED引脚电平
DELAY_milliseconds(i); //延时
printf("当前延时的时间为%d毫秒。\n\n",i);
}
}
在使用delay延时函数时,需要注意先将头文件包含(上面行第二行)。
LED灯闪烁的间隔时间初设为100毫秒,每按下一次按键,间隔时间翻倍(i<<=1),当间隔时间超过5秒时回归到100毫秒的初始值。下图的红色箭头处即为按键后的变化:
本次测试按键采用轮询方式,没有采用中断方式;LED闪烁也只使用了简单的延时函数,没有采用高效的定时器方式。
应坛友要求,补充本次实验工程项目的压缩包:
MyTest1a.X.rar
(729.93 KB)
|