查看: 961|回复: 0

SAM4S Xplained Pro Demo程序简析

[复制链接]
  • TA的每日心情

    2016-10-4 00:31
  • 签到天数: 173 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-11-20 17:01:08 | 显示全部楼层 |阅读模式
    分享到:
    看了一下,4s有一个demo,可以把IO1和oled两个扩展板用起来,那就先来试用下。根据demo上的要求,插上两块扩展板,IO1必须在EXT2,oled必须在EXT3,然后就是新建example project。细看下,src里面结构还是比较清晰的,分成3块。asf、config和main.c。

    首先来看asf,就是atmel的软件框架。下面有common、sam和thirdparty。
    common里面主要是3部分。
    boards:用来定义各种atmel的开发板对应的头文件位置;
    components:里面有关于显示和存储的头文件和源文件,不过奇怪的是,4s上不是有nand flash吗?怎么没在里面呢。这里面的三个都是扩展板上的说。看来demo上是没有用到nand flash。ssd1306是oled的驱动;at30tse75x是IO上的eeprom;sd_mmc是IO上的TF卡。

    然后是service,这里面有clock、delay、gpio、spi等等。但是如果向下看,会发现sam目录里面还有pio,spi什么的。这些是重复的吗?事实上,如果看到里面文件内容我们会发现,比如sam_gpio.h里面包含了driver里面的pio.h,然后用pio.h里面定义的函数来实现sam_gpio里面定义的功能。为啥要这么做呢?暂时没想明白。

    utils里面只有两个,中断和stdio(其实就是串口的读写啦),其实要调用service里面的uart的驱动啊,这个是不是给更高级的程序用的?
    进到sam目录里面,发现怎么还是boards、drivers和utils??!!这个里面的应该是比common要第一层次的,或者更接近硬件细节的。比如这里的boards里面就定了一些针对4s和扩展板的初始化代码,driver里面就是外设的驱动,提供给common的service使用。
    ASF的最后一部分很简单,就是第三方的代码,这里有cmsis和fatfs

    第二部分,config,很好理解,就是各种外设的设置。比如最简单的uart的配置文件里面就可以找到uart界面,波特率,校验等等

    最后通过一个asf.h把所有的头文件都包含进来了,供main.c使用。这样main.c里面就只包含asf和string就ok。
    main的结构也很清楚,对各种外设初始化,gpio对应按键和LED,adc是用来测量光照强度的,温度用I2C,sd卡用spi。然后建立了一个128长度的buffer,用来存放温度和光照的数值,因为显示有128列,这样可以画出一个动态的柱状图。分成3个模式,分别显示温度,光照和sd卡文件信息,用button1切换,用LED1-3指示模式。上两张最后的运行效果图。实际测量是很稳定的,为了有点效果故意弄了下。

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 12:16 , Processed in 0.108189 second(s), 17 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.