在SAM4S XPLAINED开发板上实现简单串口通信

作者: fengye5340
上传时间为: 2014-12-25 08:53 AM

          串口通信测试,这个在调试任何开发板的时候都需要用到它,以前TI和ST的串口,看着库函数配置一下就OK,驱动的编写也很简单,可是,遇到了ATMEL SAM4S XPLD这个活宝,真个有些犯难,不是一般的难,而是相当的“难”,难在ATMEL太乱了,可能是为了兼顾它名下所有的开发平台吧,将各种板卡的资源配置都做成了.H文件,集成在它的开发环境ATMEL STUDIO6下面的ASF框架下。这个asf-3.5.1的软件编程框架是独立的,可以单独去ATMEL的官网下载。独立的ASF里面集成了各种各样的板卡配置文件和例程DEMO,包括LINUX下编译平台GCC 和 IAR平台,传说中的startup_sam4s.c终于让我发现了它,它就藏在这些众多的application下面,呵呵,ATMEL真会跟大家开玩笑,官网上的针对IAR的平台的固件库里面竟然没有这么重要的文件,而它的STUDIO6 下面竟然发现了IAR平台的东西,ASF这个框架在官网上说的也很含糊(个人观点)。抱怨归抱怨,不过,从另一方面说,它的芯片平台还是不错的,里面集成的硬件资源比较丰富,看看它的外设驱动包就知道了。如图:

        

         在开发这个芯片之前,一定要弄懂 sysclk_init()、board_init()这两个函数,里面涉及了各种宏定义,非常繁杂,要耐心看才能理出写头绪。有了这两个函数以后,剩下的工作中可以自由发挥了。今天我发挥了一下串口部分,呵呵,不过由于时间所限,没有测试更多功能,只简单测试了一下串口打印的printf()功能,这个实现了就可以干活啦。采用IAR环境开发,工程文件截图:

         

 在driver文件夹里面实现串口驱动文件,UART_SAM4S16.C和UART_SAM4S16.H

1、串口初始化函数

这里面打开串口时钟和端口时钟,配置串口发送端口引脚后,采用库函数初始化串口结构体就可以,在上面的结构体上面定义了通信格式。

然后使能收发引脚和串口功能。

2、发送单个字符和字符串口,直接从原来的模板移植而来:

3、串口printf打印函数的实现。

4、初始化字符显示:

5、主函数及工程文件加载后截图:

        串口调试的过程中,总得实现点看得见的东西才好,就用现成的systick函数来实现毫秒级延时,并点灯闪烁。注意:由于板子的串口0引脚和仿真器引脚接在一起,通信时,有的电脑可能没有反应(我的就是这样),我就用串口1来实现这个通信了。下面上几张图片。

       

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示