打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+按键LED串口测试

[复制链接]
1111|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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工作正常。
至此,对开发板的按键、LEDUSART测试成功。


测试报告视频.zip

4.66 MB

使用特权

评论回复
沙发
秦生0303| | 2021-11-26 17:25 | 只看该作者
好详细的步骤,参考一下

使用特权

评论回复
板凳
shifeng88| | 2021-11-27 12:39 | 只看该作者
谢谢楼主了!

使用特权

评论回复
地板
hu9jj| | 2021-11-27 13:41 | 只看该作者
介绍的非常详细,可以当作入门教程用了。

使用特权

评论回复
5
dql2015| | 2021-11-29 08:22 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:大连伊飞特信息技术有限公司软件工程师
简介:本人于1993年毕业于大连理工大学。毕业后从事单片机开发工作5年,之后转入软件开发工作至今。

93

主题

2879

帖子

5

粉丝