99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

電子工程師 ? 作者:工程師陳翠 ? 2018-06-18 07:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

下面就簡單的分析一下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);//機械按鍵初始化

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)

{

/*主要完成時鐘、gpio、OLED、SD卡的初始化,和各個功能*/

}

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

下面我們就來開發(fā)個小的實例,讓OLED液晶屏幕輸出HelloWorld!

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

因為要在OLED屏上輸出,所以要查看液晶屏的驅(qū)動函數(shù)。

詳細的可以去項目文件中 ASF -》 common -》 components -》 display -》 ssd1306 中查看驅(qū)動文件。

#include

#include

intmain(void)

{

sysclk_init();// 初始化時鐘

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開發(fā)起來還是很好用的,外殼也是VS2010的。有些功能還是很方便的,

比如系統(tǒng)中有

ssd1306_set_page_address();

ssd1306_set_column_address();

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

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

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

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

    關(guān)注

    0

    文章

    2

    瀏覽量

    1647
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    新手求助 Atmel SAM4S

    Atmel家的單片機我從來沒接觸過,以前用過STM32。因為最近要研究 Atmel SAM4S,但是網(wǎng)上基本找不到相關(guān)的中文講義或者教程{:4_106:}。關(guān)于AVR的倒是鋪天蓋地的,所以想進來
    發(fā)表于 05-21 20:12

    ATMEL SAM-4S Xplained之RTC實時時鐘程序

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

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

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

    SAM4S MDK頭文件初步分析

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

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

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

    菜鳥一步步入門SAM4S-XPLAINED--IAR開發(fā)環(huán)境

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

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

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

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

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

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

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

    記錄寫SAM4S的bootloader所踩的坑

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

    Atmel SAM D20 Xplained Pro_USER GUIDE

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

    Atmel SAM R21 Xplained Pro

    Atmel SAM R21 Xplained Pro 開發(fā)板實戰(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入門套件的特點介紹

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