之前說了stm32的iap編程,今天天氣真好,順手就來說說lpc1788的iap編程(沒看前面的請查看stm筆記下的內(nèi)容) 首先是flash的算法,lpc1768并沒有寄存器來讓我們操作flash,他內(nèi)置了iap的flash算法,在技術(shù)手冊的525頁
#ifndef __USB_H__#define __USB_H__//usb傳輸數(shù)據(jù)的宏定義描述#include "sys.h"typedef__packed union{ U16 W; __packed struct{ U8 L; U8 H;}WB;}U16_8;//定義一個16位長度的結(jié)構(gòu)體并且內(nèi)部分成兩個八位,因為wvalu
一、背景USB在持續(xù)通信幾十萬次后,會出現(xiàn)USBIN中斷丟失幾次的情況,分析是中斷優(yōu)先級不夠高,導(dǎo)致USB中斷在排隊,然而排隊還未完成,又有新的USB中斷發(fā)生,致使其中斷丟失。LPC1769的所有中斷默認為最高優(yōu)先級"0"(數(shù)
枚舉過程如下#ifndef __USBCORE_H__#define __USBCORE_H__/* USB端點0 發(fā)送數(shù)據(jù)結(jié)構(gòu)體*/typedefstruct _USB_EP_DATA{ U8*pData; U16 Count;}USB_EP_DATA;/* USB全局變量 */extern U16 USB_DeviceStatus;extern U8 US
#define XTAL_FREQ 12000000#define VECT_TAB_OFFSET 0x0000void SystemInit(void){ //PLL0時鐘配置 LPC_SC->SCS=0X00000020; /*使能外部主晶振,頻率范圍1-20M*/if(LPC_SC->SCS&(1PCLKSEL1=0x00000000; LPC_SC->CLKS
#ifndef __USBCFG_H__#define __USBCFG_H__//#define USB_IF_NUM 1#define USB_MAX_PACKET0 64#define USB_DMA_EP 0x00000000//盡量不要是能太多時間//這里每一個事件都代表著一個回調(diào)函數(shù),使能了該事件就需要實現(xiàn)相
一、背景:使用LPC1769來做CAN的收發(fā),在此對使用LPC1769的CAN控制器進行收發(fā)做個總結(jié)和記錄,以備下次開發(fā)快速上手使用。附:LPC1768/1769除了支持最高頻率不同以外,其它基本上一致。二、正文:先貼一張LPC1769CAN
LPC1768芯片帶有USB設(shè)備控制器,前面寫的文章都是在說比較簡單的設(shè)備驅(qū)動,今天來說復(fù)雜一點的 首先是硬件層的配置#ifndef __USBHW_H__#define __USBHW_H__#include "debugSerial.h"#include "usbreg.h"#include "
Lpc1768內(nèi)置有一個ad外設(shè),該外設(shè)有八路復(fù)用輸入,所以,可以同時接八路ad設(shè)備,同時還支持觸發(fā)轉(zhuǎn)換模式,由外部端口進行ad觸發(fā),ad轉(zhuǎn)換完成之后可以產(chǎn)生中斷 Lpc1768支持的轉(zhuǎn)換模式有兩種,分別會連續(xù)轉(zhuǎn)換模式和軟件單次轉(zhuǎn)
IIS是飛利浦公司定義的一種用于音頻傳輸?shù)臄?shù)字總線,LPC1768支持該總線, I2S接口為一條3線串行總線,含有1根數(shù)據(jù)線、1根時鐘線和1根字選擇信號線?;镜腎2S連接具有一個主機(其總是為主機)和一個從機。LPC1700系列
首先在之前鼠標的基礎(chǔ)上修改設(shè)備描述符#include "usbdesc.h"//usb標準設(shè)備描述符const U8 USB_DeviceDescriptor[]={ USB_DEVICE_DESC_SIZE, //bLength字段。設(shè)備描述符的長度為18(0x12)字節(jié) USB_DEVICE_DESCRIPTOR_T
#ifndef __USBREG_H#define __USBREG_H/* usb設(shè)備中斷定義 usb_devintst usb_devinten usb_devintclr usb_devintdet*/#define FRAME_INT 0x00000001 //每隔1MS產(chǎn)生一次幀中斷,該中斷用在同步包的傳輸中#define EP_FA
void wwdg_init(void){ LPC_SC->PCLKSEL0|=(3
//p2.0 pwm1.1void ALS_Init(void) //初始化{ LPC_SC->PCONP|=(1
LPC1768有三路IIC,其中IIC0支持高速模式和plus模式,另外兩路是普通IIC,使用IIC的過程如下 首先依然是打開IIC時鐘,同時打開GPIO時鐘然后配置引腳為IIC功能另外,因為iic0支持plus結(jié)構(gòu),所以gpio控制的時候還有這個寄存器
SPI是一種全雙工串行接口,可處理多個連接到指定總線上的主機和從機。在數(shù)據(jù)傳輸過程中總線上只能有一個主機和一個從機通信。在數(shù)據(jù)傳輸中,主機總是會向從機發(fā)送一幀8到16個位的數(shù)據(jù),而從機也總會向主機發(fā)送一幀字
LPC1768在系統(tǒng)滴答定時器和通用定時器之外還引入了一個定時器,叫做重復(fù)定時器RIT,該定時器只能用于定時操作,帶有一個中斷,我個人的感覺,這似乎是為了延時函數(shù)設(shè)計的一個定時器那么使用該定時器時遵循什么流程?第一,打
//其他通道的基本定時功能都能在這里實現(xiàn)void Time0Mr0Init(u32 arr,u32 psc){ LPC_SC->PCONP|=(1MCR|=((1
#ifndef __USBEP1_H_#define __USBEP1_H_#include "usb.h"#include "usbhw.h"extern s8 sendBuffer[4]; //鼠標數(shù)據(jù)發(fā)送緩沖區(qū)extern u8 mouse_connect; //鼠標連接標志void usb_ep1_in_process(void);void usb_ep1_o
LPC1788通用IO口的控制包含了一些基本的組件,比如設(shè)置推挽輸出,開漏輸出,上拉電阻等,我們今天來看看. 首先使用GPIO要打開GPIO的系統(tǒng)時鐘 LPC_SC->PCONP \"= (1