查看: 1099|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2018-9-18 06:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-12-25 08:53:51 | 显示全部楼层 |阅读模式
    分享到:
    串口通信测试,这个在调试任何开发板的时候都需要用到它,以前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来实现这个通信了。下面上几张图片。
            


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 22:19 , Processed in 0.113336 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.