AtmelStudio 7 ASF库学习笔记一:新建工程、配置时钟、下载程序和查看官方例程

一、前言

        由于需要学习一下atmel的atsaml 系列,使用AtmelStudio 7开发,之前主要用STM32,现在看到Atmel的库函数,其实是有许多相似之处。ASF3的库对应ST的标准库。ASF4对应ST的HAL库,Ateml Start对应STM32CubeMX。这里还是用ASF3来开发,因为Ateml Start还不支持我的这个芯片,而且和STM32的HAL库类似,ASF4为了好移植都是底层都用了抽象的写法,资料比较少,效率估计也不高。

用到的工具如下:
IDE:AtmelStudio 7

芯片:ATSAM4LS2C (M4内核,主频48M)

ASF版本:3.47

仿真器:JLink v9

二、新建工程,配置时钟

1.新建工程,选择GCC ASF Board Project,填写一下工程名,这里叫template。

 2.选择使用的芯片,如果用官方的开发板,也可改成选择开发板,注意右边→_→有Datasheet(数据手册),可以下载下来,之后都会用到。

3.打开ASF Wizard 

有时候会卡住,等一下。

 

一般最基础会用到的Modules包括System Cocok、Delay、GPIO,选选中,然后点击Add添加到右边,最后点Applay应用。

 ASF库文件会自动添加到src文件夹下,config文件下conf_clock.h和conf_board.h就是给用户配置的,等下会用到。

4.点击图上标出的编译图标,编译工程,会发现报错了 BOARD_OSC0_HZ 未声明,看来跟晶振频率有关,接下来就要配置下系统时钟。

 

 5.配置时钟要参考一下官方代码,看到有教程通过ASF Explorer下找到quick Start Guide链接到快速指南,但是现在已经带不开网页了,可能是Ateml已经被MicroChip收购了,网址改了。

 没关系。我们可以通过microchip官网找到ASF库的开发指南

https://asf.microchip.com/docs/latest/search.html?device=sam4l

 找到system clock的quickstart guide,看到如下例子

https://asf.microchip.com/docs/latest/sam4l/html/sysclk_quickstart.html

 

6.还是有点懵逼,没关系,AtemlStudio已经包括了很多例程,通过File->Example Project新建官方例子工程

 有几千个例子,通过搜索框填入clock缩小下范围,选择其中一个。

 新建的官方例程CLOCK_ESAMPLE11和我们之前建的工程template在一个解决方案下。

 

7.通过查看例程的代码,差不多明白了,板上的时钟晶振BOARD_OSC0_HZ需要自己宏定义,我们照搬例程的定义,复制到conf_board.h,晶振频率根据自己板上的实际频率设置,这里配置12M和32.768k,其他的如BOARD_OSC0_STARTUP_UP启动时间也要定义,代码如下:

 

8.看一下数据手册(前面下载的),ATSAM4L的主时钟频率源可选的有7个,默认RCSYS,只有115KHz。

 

由于默认的RCSYS频率太低,打开conf_clock.h,将SYSCLK_SRC_RCSYS注释掉,选择SYSCLK_SRC_PLL0锁相环作为系统时钟

 

同样是conf_clock.h里,可以看到pll的分频和倍频默认设置到最大主频48M。

 

打开main.c,插入时钟初始化sysclk_init();

 

9.记得切换工程为我们的template

 

再编译一下,没错误系统时钟就配置好了

 

三、点灯程序
下面就用配置好的工程模板写个简单的点灯,板上的LED灯连接PC26,低电平点亮。

 

代码如下:

#include <asf.h>
 
#define LED_ON  ioport_set_pin_level(PIN_PC26,0)
#define LED_OFF ioport_set_pin_level(PIN_PC26,1)
int main (void)
{
	/* Insert system clock initialization code here (sysclk_init()). */
	
	sysclk_init();//系统时钟初始化
	board_init();
	delay_init();//延时初始化
	
	/* Insert application code here, after the board has been initialized. */
	
	ioport_enable_pin(PIN_PC26);//PC26使能普通IO口功能
	ioport_set_pin_dir(PIN_PC26,IOPORT_DIR_OUTPUT);//PC26方向输出
	while(1)
	{
		LED_ON;
		delay_ms(200);
		LED_OFF;
		delay_ms(200);
	}
}

四、下载调试
1.点击工具栏锤子图标,选择仿真器,我这里用的是Jlink ,接口用SWD,这里有两点要注意:

(1)擦除选择Erase only program area,只擦除程序区域,如果选择整片擦拭会下载失败。

(2)和STM32不同,Atmel的SWD要连5根线,SWD_CLK,SWD_DIO,SWD_RST,VCC和GND,多了RST,不连能下载程序,但是调试不了。

 

2.工具栏上的这两个图标,左边是下载程序,不调试;右边是进入调试

点击下载,顺利的话能看到LED灯闪烁。

五、总结
1.数据手册在选择芯片的窗口可以直接下载。

2.开发指南可以在官网找到:

https://asf.microchip.com/docs/latest/search.html?device=sam4l

3.官方例程可以通过File->Example Project 查找和建立。

4.外国社区网站挺活跃的,有啥问题可以在上面搜索一下

https://community.atmel.com/

通过以上4点基本上有啥问题都能迎刃而解。

 
————————————————
版权声明:本文为CSDN博主「哀歌与世无争」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yxy244/article/details/104519671

(30条消息) AtmelStudio 7 ASF库学习笔记一:新建工程、配置时钟、下载程序和查看官方例程_哀歌与世无争的博客-CSDN博客_atmelstart教程

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值