搜索

[参考设计] 【CuriosityNano测评报告】用串口USART0控制LED0状态

[复制链接]
2262|8
 楼主 | 2020-8-2 12:05 | 显示全部楼层 |阅读模式
本帖最后由 harrislou007 于 2020-8-2 12:19 编辑

很庆幸获得了Curiosity Nano开发板第二轮的体验资格,表示一下感谢先!


拿到板子后,先快速过了一下下面的这些文档:
User guide:
http://ww1.microchip.com/downloads/en/AppNotes/AN3429-Getting-Started-AVRDA-Family-DS00003429B.pdf
datasheet:
AVR128DA48: https://www.microchip.com/wwwproducts/en/AVR128DA48
Atmel START user guide:
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-START-User-Guide-DS50002793B.pdf


演示用例简介:
考虑到手头外设有限,这里只演示一个通过USART0口下发字符命令(带回显,以tab键来间隔)来控制LED0的开关状态的小程序。
引脚:
PA0  --  USART0  Tx
PA1  --  USART0  Rx
PC6  --  用于控制LED0的开关状态。
字符命令:
m  --  打开LED0;
a   --  关闭LED0。
其它字符输入对LED0状态不影响。


一。开发环境的下载和安装:

由于以前已使用过MPLAB X IDE, 现在想试用一下Atmel Studio 7.0 IDE,不同的IDE在后续的使用细节上会有些区别,请注意区分,
但它们在上面的几份文档中都有详细叙述。
1. 下载并安装Atmel Studio(目前最新的是7.0)
https://www.microchip.com/mplab/avr-support/atmel-studio-7


2. 安装AVR-Dx_DFP以支持AVR128DA48:
对于Atmel Studio,请参考AN3429-Getting-Started-AVRDA-Family-DS00003429B.pdf文档的3.5节中的以下内容。
Atmel Studio: Support for new devices in Atmel Studio can be added by using the Device Pack Manager, which is
found under Tools → Device Pack Manager.
For the AVR ® DA family, update to the latest version by performing the following steps:
1. Click Check for Updates.
2. For the AVR ® DA family, select the latest available version of AVR-Dx_DFP.
3. Click Install.
For offline installers, go to http://packs.download.atmel.com/. To install a package, double click on the installer file
and follow the instructions. Any open Atmel Studio window will have to be closed for the installation to take effect.
devicePackerManager0731.png


二。 通过Atmel_START主页,按需选择software components并配置PINMAX,并下载工程:

详细步骤请参考Atmel-START-User-Guide-DS50002793B.pdf文档的第3,4两个章节
1. 打开 Atmel_START主页(http://start.atmel.com),点击‘CREATE NEW PROJECT'按钮(也可以点击’BROWSE EXAMPLES'按钮,选择一个类似的作为模板)。


2. 在'DASHBOARD'下,点击‘Add software component'按钮,在driver下添加USART0和TIMER_0, TIMER_0在本工程中为可选项;
software_component.png
3. 在’PIMMAX'下,配置PA0,PA1,和PC6如下:
pimmax_configurator.png
4.点击‘EXPORT PROJECT'按钮,导出该工程并命名为led_uart.atzip。
export_project.png

三。 导入第二步中下载的工程,添加相应的应用代码,构建并调试程序直到达到预期的效果。

详细步骤请参考AN3429-Getting-Started-AVRDA-Family-DS00003429B.pdf文档的第四章节
连接好标配的USB线和USART0。接线图如下:
hwconnection.jpg
1. 打开Atmel Studio。选择 File > Import > Atmel Start Project。找到并导入前面下载的led_uart.atzip文件;
import_start_project.png

2. 更新main.c文件中代码如下
#include <stdio.h>
#include <atmel_start.h>
#include <atmel_start_pins.h>
#include <usart_basic.h>


int main(void)
{
        uint8_t a = '\t';
        uint8_t c;
        
        /* Initializes MCU, drivers and middleware */
        atmel_start_init();


        /* Replace with your application code */
        while (1) {
                /* Read one char from USART0, similar to getchar(). */
                c = USART_0_read();
               
                switch(c){
                        case 'm': // Turn on LED0.
                            PC6_set_level(false);
                                break;
                        case 'a': // Turn off LED0.
                            PC6_set_level(true);
                                break;
                        default: // Do nothing.
                            break;
                }
                /* Echo the char above back to USART0, similar to putchar(). */
                USART_0_write(c);
                /* Print a tab between two commands. */
                USART_0_write(a);
        }
}


3.构建,调试工程代码后,最终执行时的视频如下:
链接:https://pan.baidu.com/s/1eXwH_I2nXP66_otwRDqZhw
提取码:wzln
复制这段内容后打开百度网盘手机App,操作更方便哦


四。心得体会:

1.总的说来,从拿到板子到调试成功,各个步骤都完成的非常顺利,板子和排针的做工和尺寸也非常精致,
后续还会抽空体验一下其它的一下example;
2.初次上手的话强烈建议先看一下上面的几份文档,先理清思路后再动手;


使用特权

评论回复
| 2020-8-5 09:41 | 显示全部楼层
IDE 不错

使用特权

评论回复
| 2020-8-5 13:48 | 显示全部楼层
厉害啊~~ 支持!  顶一下~

使用特权

评论回复
| 2020-8-7 09:48 | 显示全部楼层
谢谢分享【串口USART0控制LED0状态】

使用特权

评论回复
| 2020-8-7 14:36 | 显示全部楼层
很详尽,点赞

使用特权

评论回复
| 2020-8-17 20:24 | 显示全部楼层
你可以自己生成些代码, 期待更精彩的反馈哦!

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表