资源简介
代码的功能是将数据写入指定页面后再读出,并通过串口发送。代码已测试,可以直接使用。注:本例子是根据协议栈的提供的代码进行整理、改编的,如有不足之处,请各位大神指定!谢谢!
代码片段和文件信息
#include
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef char BYTE;
#define st(x) do { x } while (__LINE__ == -1)
#define HAL_DMA_SET_ADDR_DESC0( a ) \
st( \
DMA0CFGH = (uchar)( (uint)(a) >> 8 ); \
DMA0CFGL = (uchar)( (uint)(a) & 0xFF ); \
)
#define HAL_DMA_SET_ADDR_DESC1234( a ) \
st( \
DMA1CFGH = (uchar)( (uint)(a) >> 8 ); \
DMA1CFGL = (uchar)( (uint)(a) & 0xFF ); \
)
#define HAL_DMA_GET_DESC0() &dmaCh0
#define HAL_DMA_GET_DESC1234( a ) (dmaCh1234+((a)-1))
#define HAL_DMA_ARM_CH( ch ) DMAARM = (0x01 << (ch))
#define HAL_DMA_CH_ARMED( ch ) (DMAARM & (0x01 << (ch)))
#define HAL_DMA_ABORT_CH( ch ) DMAARM = (0x80 | (0x01 << (ch)))
#define HAL_DMA_MAN_TRIGGER( ch ) DMAREQ = (0x01 << (ch))
#define HAL_DMA_START_CH( ch ) HAL_DMA_MAN_TRIGGER( (ch) )
#define HAL_DMA_CLEAR_IRQ( ch ) DMAIRQ = ~( 1 << (ch) )
#define HAL_DMA_CHECK_IRQ( ch ) (DMAIRQ & ( 1 << (ch) ))
// Macro for quickly setting the source address of a DMA structure.
#define HAL_DMA_SET_SOURCE( pDesc src ) \
st( \
pDesc->srcAddrH = (uchar)((uint)(src) >> 8); \
pDesc->srcAddrL = (uchar)( (uint)(src) & 0xFF ); \
)
// Macro for quickly setting the destination address of a DMA structure.
#define HAL_DMA_SET_DEST( pDesc dst ) \
st( \
pDesc->dstAddrH = (uchar)((uint)(dst) >> 8); \
pDesc->dstAddrL = (uchar)( (uint)(dst) & 0xFF ); \
)
// Macro for quickly setting the number of bytes to be transferred by the DMA
// max length is 0x1FFF.
#define HAL_DMA_SET_LEN( pDesc len ) \
st( \
pDesc->xferLenL = (uchar)( (uint)(len) & 0xFF); \
pDesc->xferLenV &= ~HAL_DMA_LEN_H; \
pDesc->xferLenV |= (uchar)((uint)(len) >> 8); \
)
#define HAL_DMA_GET_LEN( pDesc ) \
(((uint)(pDesc->xferLenV & HAL_DMA_LEN_H) << 8) | pDesc->xferLenL)
#define HAL_DMA_SET_VLEN( pDesc vMode ) \
st( \
pDesc->xferLenV &= ~HAL_DMA_LEN_V; \
pDesc->xferLenV |= (vMode << 5); \
)
#define HAL_DMA_SET_WORD_SIZE( pDesc xSz ) \
st( \
pDesc->ctrlA &= ~HAL_DMA_WORD_SIZE; \
pDesc->ctrlA |= (xSz << 7); \
)
#define HAL_DMA_SET_TRIG_MODE( pDesc tMode ) \
st( \
pDesc->ctrlA &= ~HAL_DMA_TRIG_MODE; \
pDesc->ctrlA |= (tMode << 5); \
)
#define HAL_DMA_GET_TRIG_MODE( pDesc ) ((pDesc->ctrlA >> 5) & 0x3)
#define HAL_DMA_SET_TRIG_SRC( pDesc tSrc ) \
st( \
pDesc->ctrlA &= ~HAL_DMA_TRIG_SRC; \
pDesc->ctrlA |= tSrc; \
)
#define HAL_DMA_SET_SRC_INC( pDesc srcInc ) \
st( \
pDesc->ctrlB &= ~HAL_DMA_SRC_INC; \
pDesc->ctrlB |= (srcInc << 6); \
)
#define HAL_DMA_SET_DST_INC( pDesc dstInc ) \
st( \
pDesc->ctrlB &= ~HAL_DMA_DST_INC; \
pDesc->ctrlB |= (dstInc << 4); \
)
#define HAL_DMA_SET_IRQ( pDesc enable ) \
st( \
pDesc->ctrlB &= ~HAL_DMA_IRQ_MASK; \
pDes
- 上一篇:最小的HTTP服务器
- 下一篇:Qt的pro文件转VS的工程文件
相关资源
- cc2530寄存器手册
- 基于xilinx FPGA的PCIe设计实战
- 一个简单的verilog编写的DMA IP CORE,和
- stm32通过DMA方式采集ADC数据
- stm32的DAC播放音乐文件
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- IEEE 802.15.4的CC2530无线数据收发设计
- IEEE 802.15.4的CC2530无线数据收发设计
- ZStack-CC2530-2.5.1a
- TD-SCDMA网络测试仪中E1数据采集卡的驱
- TD-SCDMA测试仪中Iub接口CDR的合成方案
- 安捷伦CDMA2000测试解决方案
- Pix4Dmapper4.4.10中文破解版带注册机网盘
- Pix4Dmapper4.4.10中文破解
- Pix4Dmapper教程
- 基于ZigBee温室环境监测系统电路设计
- 智能分户供暖监控系统的无线温控器
- CC2530的分布式无线数据采集系统设计
- stm32利用spi驱动tm1803
- qualcomm cdma technologies msm 驱动
- 基于溶胶凝胶法的TiO2溶胶的制备
- 矿井巷道时频编码协作MC-CDMA信道估计
- shape_predictor_68_face_landmarks.dat.bz2 68个标
- 3DMax的模型
- CDMA通信系统中的接入信道部分进行仿
- WCDMA系列化基站规模服务马来西亚
评论
共有 条评论