單片機(jī)的芯片內(nèi)集成了計(jì)算機(jī)的基本功能部件,已具備了很強(qiáng)的功能,當(dāng)片內(nèi)ROM,RAM的容量,并行I/O端口,定時(shí)器及中斷源等資源都還可以很方便地進(jìn)行功能擴(kuò)展.特別是用的較多的廉價(jià)的EPROM.片內(nèi)RAM中具有1
// 串行數(shù)碼管顯示 tlc549 AD轉(zhuǎn)換值// 芯片 ATMEGA16L // 時(shí)鐘 4MHz 內(nèi)部 // 采用系統(tǒng)自帶延時(shí)程序#include #include#define hc164_data PORTD.0 // 164數(shù)據(jù)線 #define hc164_clk PORTD.1 // 164時(shí)鐘線 #defi
1.1 啟動代碼內(nèi)容1) 硬件初始化:最起碼的是要初始化堆棧指針。2) C語言環(huán)境 :在main函數(shù)調(diào)用之前要完成對一些變量的初始化。3) 應(yīng)用初始化: 這主要取決于你的應(yīng)用。比如設(shè)置系統(tǒng)的晶振、時(shí)鐘。1.2 圖解M3啟動過程1)
關(guān)于spi協(xié)議見:http://hi.baidu.com/gilbertjuly/blog/item/0be222eeac9abae5cf1b3e38.html ISD4002芯片資料參考:http://download.csdn.net/source/1208805 以下是單片機(jī)spi通信的通用程序,在不同晶振情況下
因?yàn)闆]有中斷的清除標(biāo)志位,這一點(diǎn)與其它單片機(jī)是不同的。EXTI_CR1 觸發(fā)邊沿的設(shè)置要在總中斷沒開時(shí)才能寫入!PD7 是 不可屏蔽的最高優(yōu)先級的硬件中斷(TLI)設(shè)置順序:最好先關(guān)中斷 設(shè)置邊沿 開啟引腳 最后開總中斷Di
存儲控制器S3C2440A是32位處理器,理論上擁有32根地址線,尋址空間0x00000000~0xFFFFFFFF,即4G而實(shí)際上,S3C2440A只擁有27根地址線,實(shí)際物理尋址空間為0x00000000~0x07FFFFFF,即128MB除了這27根地址線,S3C2440A還
LPC2478的IIC使用LPC2478帶有三個(gè)IIC接口,每個(gè)IIC都可以工作在主機(jī)或者從機(jī)模式下,LPC的IIC的架構(gòu)是一種狀態(tài)機(jī)的形式,在不同的的時(shí)間做不同的工作之后有不同的狀態(tài)來表示,簡單來說,就是發(fā)送起始字節(jié)之后會有一個(gè)狀態(tài)
首先在網(wǎng)上看到大部分移植FreeRTOS 都是選擇修改他的啟動文件,我個(gè)人感覺這樣不是很好,畢竟是匯編,當(dāng)你采用不同的芯片型號時(shí),又要修改不同的xx.S文件,所以我選擇修改FreeRTOSconfig.h文件。1. 下載STM32官方源碼
利用STM32跑UCOS 寫了個(gè)很簡單的程序,編譯如下Program Size: Code=24562 RO-data=746 RW-data=88 ZI-data=7456以此推算,小于FLASH小于24K RAM小于8K 根本不能考慮STM32的UCOS,只能祼奔,STM32的FLASH到還好滿足些
1. LAB100.C(12): error C216: subscript on non-array or too many dimensions 原程序如下:#include#includevoiddelay(int);unsignedcharcodedis_code[8]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a};main(){inti,
1 /*電壓表 精確到小數(shù)點(diǎn)后面三位*/2 /*連線:電位器接IN0,AD_CS接CS0,CS1接KEY/LED_CS*/3 #include4 typedef unsigned char uchar;5 xdata uchar LED_CS _at_ 0x9000;6 xdata uchar LED_OUTSEG _at_ 0x9004;7 xdat
現(xiàn)在主要講解一下在GCC移植UCGUI,Makefile工程如何加入目錄,加入源碼,c標(biāo)準(zhǔn)庫,編譯選項(xiàng)的設(shè)置。筆者的Makefile模板提取自uboot,工程中加入目錄,加入源碼都是很簡單的,詳細(xì)的介紹請參考前面章節(jié)” GCC啟動代碼
在STM32單片機(jī)的編程當(dāng)中,中斷函數(shù)的名稱都是xxx_IRQHandler格式的。那當(dāng)編譯程序的時(shí)候是怎么知道這是一個(gè)中斷函數(shù)的呢?每個(gè)中斷都是有入口地址的。程序在執(zhí)行過程中遇到中斷的時(shí)候,會先判斷這個(gè)中斷的類型,根據(jù)
1> 解壓下載的交叉工具鏈2> vi /etc/profile在這個(gè)文件最后添加上自己的環(huán)境變量:export PATH=$PATH:/usr/local/arm/4.3.2/bin($PATH后面為解壓的交叉工具鏈的絕對地址)3>source /etc/profile注:一些交叉工具鏈要
用ADS1.2編輯的,注意添加target.c,IRQ.s,Startuo.s和mem.scf文件。主程序: /****************************************************************************** *File:Main.c *功能: 鍵盤輸入.當(dāng)檢測到有按鍵