本帖最后由 suncat0504 于 2021-12-20 11:33 编辑
#申请原创# 【CuriosityNano测评报告】+ 按键LED UART测试 本次报告是基于“PIC® & AVR®Curiosity Nano开发板第八波免费申请”的“ATtiny1627Curiosity Nano”开发板的测试报告。 一、 开发前的准备 1、联机准备 到手后,是由两个排针和一个开发板构成。开发板本身提供了两个排针的位置。特意说明一下,开发板的排针孔不是标准的dip17排列,而是有一定角度的交错,这样将排针插到开发板上,计时不用焊接,也可以保证和开发板的稳定接触。 手的开发板的外观:
开发板 开发板底视图(1) 开发板底视图(2)
将排针接入开发板后,下一步就是开始准备联机调试了。 为了确认开发板是否可以联机调试,找一条好用的MicroUSB数据线,将开发板连接到计算机主机USB口上,计算机会有提示设备连接,当设备接入成功后,查看“设备管理器”,如果在端口的列表中出现“Curiosity Virtual COM Port”设备时,表明开发板正常联机,可以为下一步开发做准备了。 2、开发环境准备 为了方便开发板的联机调试,需要准备开发环境。我这里选择的是安装《MPLABX IDE v5.50》这个软件。这个软件可以在Microchip官网中下载。以下是网址: https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide?utm_source=MCHP_Web&utm_medium=21IC_forum&utm_campaign=21IC_Q41_Giveaway&utm_term=21IC_Metrics&utm_content=21IC_MPLAB_XIDE 下载安装完成后,桌面会有一个快捷图标:
二、 联机调试开发 打开MPLAB IDE软件 选择新建工程 在新窗口中选择“Microchip”及“独立项目”, 然后选择下一步, 在系列中选择“8-bit AVR MCUs(XMega/Mega/Tiny)”, 在器件中选择“ATTiny1627”和“ATTiny1627 Curiosity Nano-SN”。注意,“ATTiny1627”和“ATTiny1627 Curiosity Nano-SN”这个选项是在开发板已经接入计算机的场合,才能显示出来的。选好后,选择下一步,选择编译器, 继续下一步,提示输入项目信息,包括项目名称和项目保存的位置。 输入好这些信息后,选择编码为UTF-8模式,选择“Finish ”,进入MPLAB IDE主界面。
为了方便快速开发,我使用了MCC。通过图形界面配置工程中用到的MPU各个设备,这样省去了工程中设备配置这一块,这可以相当节省时间。 如果你的系统中已经正常安装了MCC的话,IDE主界面的工具条中会有一个“MCC”的图标。没有的话,可以通过“Tools”-》“Plugins”安装这个插件。 启动“MCC”,这个过程要花点时间。 点击“Select MCC Melody” 稍等,直到出现以下界面,就可以直接设置工程中要用的设备了。 现在这个工程用到了按键、LED和串口。按键默认使用开发板提供的,占用PC4;LED也是开发板提供的,占用PB7。UART,使用USART0。据此,在左侧的“Device Resources”中,找到“Drivers”中的找到“UART”,点击“USART0”左边的“+”,使USART0被选中到工程里。 串口的设置,可以在右侧的“USART0”标签页中设置。默认的设置是:9600波特率,无奇偶校验,8位数据,1位停止位。不需要改变,直接使用这些默认设置即可。 接下来设置按键和LED的配置,根据开发板的默认配置,选择PB7为输出,上拉电阻有效,初始化输出高电平。PC4为输入,上拉电阻有效,初始化输出高电平。
到这里,这个工程用到的设备就已经配置好了。MPU其他主设备不用特意处理,使用默认配置好了。 下面开始生成代码。点击“Generate”按钮 出现“Generation complete.”提示的话,意味着代码正常被生成了。
可以转到工程文件构成页面,查看已经生成的代码。 接下来,我们只需要编写处理代码即可。设备部分的初始化以及一些基本操作函数,已经被IDE自动生成,我们只需根据需要调用即可。进入main.c主程序, 为了能正常使用串口发送字符串信息,我们需要添加一些必要的函数。 代码如下: 函数声明部分 void delay(unsigned int i); void send_string_to_USART_CDC(char *d);
函数实现部分 /** * 延迟处理 *@param i */ void delay(unsigned int i) { while(i--); }
/** * 向串口发送字符串信息 *@param d 字符串 */ void send_string_to_USART_CDC(char *d) { uint8_ti = 0; do{ if (USART0_IsTxReady()) { // 向串口发送一个字符 USART0_Write(*(d + i)); // 指针地址+1,指向下一个字符 i++; } }while (*(d + i) != 0); }
接下来追加按键和LED的处理代码。在main函数的while循环中追加以下代码: if (!(PORTC.IN & PIN4_bm)) { // 延迟消抖动 //delay(20); if (!(PORTC.IN & PIN4_bm)) { // 等待按键松开 while (!(PORTC.IN &PIN4_bm)) ;
// 启动继电器和LED PORTB.OUTTGL = PIN7_bm;
// 发送串口消息 send_string_to_USART_CDC("Key Pressed ..."); } } 接下来编译程序,点击工具条中的小榔头图标进行编译,出现“编译 SUCCESSFUL”表示成功。 接下来,就是把代码下载到开发板并执行了。点击以下图标即可 首次执行,会有以下提示 从下拉列表中选择联机的开发板后,
点击“OK”。 看到 Erasing...
The following memory area(s) will beprogrammed: program memory: start address = 0x0, endaddress = 0x1df configuration memory
Programming complete 这些信息,表示下载成功。这时就可以到开发板上进行测试了。 按下按钮,LED亮,串口数据发出;再按按钮,LED灭,串口数据发出。如此循环,表示按键和LED工作正常。 至此,对开发板的按键、LED、USART测试成功。
|