0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SAM4S Xplained pro的示例代碼分析詳解

電子工程師 ? 作者:工程師陳翠 ? 2018-06-18 07:18 ? 次閱讀

記得剛接觸單片機(jī)的時(shí)候使用的是STC89C52單片和keil 開(kāi)發(fā)環(huán)境,記得當(dāng)時(shí)寫(xiě)程序都是把程序要實(shí)現(xiàn)的功能全部放到一個(gè)main.c的函數(shù)中去,剛開(kāi)始完成的功能還是比較簡(jiǎn)單。后來(lái)學(xué)習(xí)了STM32F407 知道了還有固件庫(kù)這么個(gè)可以加快開(kāi)發(fā)速度的東西。將不同的功能的代碼放在了不同的文件中去(gpio.c、IIC.c等)進(jìn)行歸類(lèi)。這種方法便于程序的管理維護(hù)和擴(kuò)展其他的功能,現(xiàn)在的單片機(jī)以不再是十幾年前的51匯編時(shí)代,現(xiàn)在動(dòng)輒上M的flash存儲(chǔ)空間,除非一些對(duì)時(shí)序要求特別高,或者是操作系統(tǒng)內(nèi)核調(diào)度中會(huì)用到匯編,基本上單片機(jī)開(kāi)發(fā)使用的是C語(yǔ)言。模塊化、分層的思想對(duì)開(kāi)發(fā)和維護(hù)以及后期的功能擴(kuò)展都是很有幫助。

ASF,Atmel Software Frame 其實(shí)ASF也只是一個(gè)代號(hào)而已,可以理解為他是Atmel 公司開(kāi)發(fā)的兼容Atmel公司單片機(jī)的一個(gè)固件庫(kù)。其中包括了一些驅(qū)動(dòng)、I/O的控制、協(xié)議等一些底層驅(qū)動(dòng),供給用戶(hù)來(lái)調(diào)用加快開(kāi)發(fā)速度。

打開(kāi)的昨天的示例程序,會(huì)看到如圖3-1 所示的文件結(jié)構(gòu)

SAM4S Xplained pro的示例代碼分析詳解

main.c中主要存放的是示例程序的主程序。ASF的文件夾中主要包括了一系列的板級(jí)支持包,比如I/O口的配置、spi等配置文件還有開(kāi)發(fā)板上的OLED屏幕以及SD卡的驅(qū)動(dòng)函數(shù)。在thirdparty文件夾中有CMSIS和fatfs。

CMSIS(Cortex Microcontroller Software Interface Standard)是ARM Cortex? 微控制器軟件接口標(biāo)準(zhǔn),是 Cortex-M 處理器系列的與供應(yīng)商無(wú)關(guān)的硬件抽象層,是內(nèi)核與外設(shè)、實(shí)時(shí)操作系統(tǒng)和中間設(shè)備之間的通用接口。

FatFs是一個(gè)通用的文件系統(tǒng)模塊,用于在小型嵌入式系統(tǒng)中實(shí)現(xiàn)FAT文件系統(tǒng)。 FatFs 的編寫(xiě)遵循ANSI C,因此不依賴(lài)于硬件平臺(tái)。

詳細(xì)的內(nèi)容大家可以自己去研究一下。

下面就簡(jiǎn)單的分析一下main.c函數(shù)。

static void ProcessButtonEvt(uint8_t uc_button);//按鍵處理函數(shù)

static void Button1_Handler(uint32_t id, uint32_t mask);//按鍵1 按鍵中斷

static void Button2_Handler(uint32_t id, uint32_t mask); //按鍵2按鍵中斷

static void Button3_Handler(uint32_t id, uint32_t mask); //按鍵3按鍵中斷

static void SD_Detect_Handler(uint32_t id, uint32_t mask); //SD中斷

static void configure_buttons(void);//機(jī)械按鍵初始化

static void configure_adc(void);//配置ADC 采集光線傳感器

static void get_num_files_on_sd(void);//得到SD卡根目錄下的文件總數(shù)

static void display_sd_info(void);//在OLED上顯示SD卡的狀態(tài)

static void display_sd_files(void);//顯示SD卡的內(nèi)容到OLED屏幕上

static void ssd1306_draw_graph(uint8_t col, uint8_t page, uint8_t width, uint8_t height, uint8_t *tab);//在OLED屏幕上顯示圖片

static void ssd1306_clear_char(void);//清空OLED屏幕

int main(void)

{

/*主要完成時(shí)鐘、gpio、OLED、SD卡的初始化,和各個(gè)功能*/

}

具體內(nèi)容參看程序,研究一下ASF提供的函數(shù),開(kāi)發(fā)起來(lái)會(huì)增加開(kāi)發(fā)速度。

下面我們就來(lái)開(kāi)發(fā)個(gè)小的實(shí)例,讓OLED液晶屏幕輸出HelloWorld!

首先將main.c函數(shù)的內(nèi)容全部清空,我們一步一步來(lái)建立這個(gè)函數(shù)。

因?yàn)橐贠LED屏上輸出,所以要查看液晶屏的驅(qū)動(dòng)函數(shù)。

詳細(xì)的可以去項(xiàng)目文件中 ASF -》 common -》 components -》 display -》 ssd1306 中查看驅(qū)動(dòng)文件。

#include

#include

intmain(void)

{

sysclk_init();// 初始化時(shí)鐘

board_init();// 初始化GPIO

ssd1306_init();//初始化OLED液晶屏

ssd1306_clear();//清空OLED屏幕

/*顯示helloWorld*/

ssd1306_set_page_address(0);//行

ssd1306_set_column_address(0);//列

ssd1306_write_text(“HelloWorld”);

/*顯示我的論壇ID*/

ssd1306_set_page_address(3);

ssd1306_set_column_address(70);

ssd1306_write_text(“-- liunian__92”);

while(1);

}

上述代碼即可完成輸出HelloWorld。如圖3-2所示

總結(jié)一下atmel Studio開(kāi)發(fā)起來(lái)還是很好用的,外殼也是VS2010的。有些功能還是很方便的,

比如系統(tǒng)中有

ssd1306_set_page_address();

ssd1306_set_column_address();

_write_text“); 這三個(gè)函數(shù),

當(dāng)你只輸入 ssd 的時(shí)候,就會(huì)在下面自動(dòng)出現(xiàn)這個(gè)三個(gè)備選函數(shù)。這個(gè)自動(dòng)補(bǔ)充功能還是蠻實(shí)用的。

atmel Studio 一些調(diào)試功能還是蠻好用的,更重要的是Help 幫助窗口,有對(duì)atmel公司所有芯片和開(kāi)發(fā)板的介紹信息,如果是初次接觸atmel公司芯片的芯片,確實(shí)應(yīng)該好好看看help文檔和他們的示例代碼。但是,可能這個(gè)開(kāi)發(fā)環(huán)境是為了兼容atmel公司所有的產(chǎn)品,所以會(huì)有很多的功能我們用不到,所以感覺(jué)整個(gè)開(kāi)發(fā)環(huán)境就顯得操作緩慢。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • sam4s
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1563
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手求助 Atmel SAM4S

    Atmel家的單片機(jī)我從來(lái)沒(méi)接觸過(guò),以前用過(guò)STM32。因?yàn)樽罱芯?Atmel SAM4S,但是網(wǎng)上基本找不到相關(guān)的中文講義或者教程{:4_106:}。關(guān)于AVR的倒是鋪天蓋地的,所以想進(jìn)來(lái)
    發(fā)表于 05-21 20:12

    ATMEL SAM-4S Xplained之RTC實(shí)時(shí)時(shí)鐘程序

    ATMEL SAM-4S Xplained之RTC實(shí)時(shí)時(shí)鐘程序
    發(fā)表于 01-24 17:12

    ATMEL-SAM4S-XPLAINED開(kāi)發(fā)板測(cè)試完全攻略

    ATMEL-SAM4S-XPLAINED開(kāi)發(fā)板測(cè)試完全攻略
    發(fā)表于 01-25 10:16

    SAM4S MDK頭文件初步分析

    SAM4S MDK頭文件初步分析
    發(fā)表于 01-25 10:30

    SAM4S-XPLAINED--KEIL開(kāi)發(fā)環(huán)境搭建及LED閃燈測(cè)試(固件庫(kù)版本)

    SAM4S-XPLAINED--KEIL開(kāi)發(fā)環(huán)境搭建及LED閃燈測(cè)試(固件庫(kù)版本)
    發(fā)表于 01-25 10:31

    菜鳥(niǎo)一步步入門(mén)SAM4S-XPLAINED--IAR開(kāi)發(fā)環(huán)境

    菜鳥(niǎo)一步步入門(mén)SAM4S-XPLAINED--IAR開(kāi)發(fā)環(huán)境
    發(fā)表于 01-25 10:55

    ATSAMR21-XPRO,SAM R21 Xplained Pro評(píng)估套件提供額外的外圍設(shè)備以擴(kuò)展電路板的功能

    ATSAMR21-XPRO,SAM R21 Xplained Pro評(píng)估套件是評(píng)估ATSAMR21G18A微控制器的硬件平臺(tái)。該套件由Atmel Studio集成開(kāi)發(fā)平臺(tái)提供支持,可輕松訪問(wèn)
    發(fā)表于 09-30 06:25

    采用SAM4S如何參考設(shè)計(jì)的UART到以太網(wǎng)網(wǎng)關(guān)

    采用SAM4S參考設(shè)計(jì)的UART到以太網(wǎng)網(wǎng)關(guān)。該參考設(shè)計(jì)演示了基于ATSAM4S的UART到以太網(wǎng)網(wǎng)關(guān)。 UDP廣播方案用于客戶(hù)端查找以太網(wǎng)地址。流量控制支持平衡以太網(wǎng)和UART之間的傳輸速率。該參考設(shè)計(jì)使用ATSAM4S
    發(fā)表于 05-20 14:45

    基于AT97SC3205 SAM4S ARM微控制器的定制USB板

    友好的演示和評(píng)估軟件。該驅(qū)動(dòng)器包含演示源代碼,用于重新加載演示代碼的十六進(jìn)制映像(如有必要)和Kit Schematics。還包括USB延長(zhǎng)線。該套件可使用最新的SAM4S ARM固件進(jìn)行更新(如果有)
    發(fā)表于 08-25 12:15

    記錄寫(xiě)SAM4S的bootloader所踩的坑

    記錄寫(xiě)SAM4S的bootloader所踩的坑
    發(fā)表于 01-24 07:16

    Atmel SAM D20 Xplained Pro_USER GUIDE

    引腳以及某些按鈕和 LED;此外,還有多個(gè)擴(kuò)展接口便于用戶(hù)擴(kuò)展。 由于 SAM D20 兼容二進(jìn)制,因此可將代碼輕松地從 SAM D20 Xplained
    發(fā)表于 11-19 13:45 ?0次下載

    Atmel SAM R21 Xplained Pro

    Atmel SAM R21 Xplained Pro 開(kāi)發(fā)板實(shí)戰(zhàn)演練
    發(fā)表于 07-08 15:08 ?28次下載

    Atmel SAM4L應(yīng)用指南

    The Atmel SAM4L Xplained Pro evaluation kit is hardware platform to evaluate the ATSAM4LC4C
    發(fā)表于 09-12 17:52 ?10次下載

    Atmel SAM4S應(yīng)用指南

      The Atmel SAM4S Xplained Pro evaluation kit is a hardware platform to evaluate the ATSAM4S
    發(fā)表于 09-12 18:47 ?16次下載

    關(guān)于Xplained Pro SAM4L入門(mén)套件的特點(diǎn)介紹

    Xplained Pro SAM4L入門(mén)套件
    的頭像 發(fā)表于 07-10 10:36 ?2630次閱讀