-
void SPI_configuration()
{
SPI_InitTypeDef SPI_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
SPI_Cmd(SPI2, DISABLE);
SPI_I2S_DeInit(SPI2);
//----------SPI_SLAVE configuration-------
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS = SPI_NSS_Hard;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; //36M/xx......
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI2, &SPI_InitStructure);
DMA_DeInit(DMA1_Channel5); //Tx
DMA_InitStructure.DMA_PeripheralBaseAddr = SPI_SLAVE_DR_Base;
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SPI_SLAVE_Buffer_Tx; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = BufferSize;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_Priority_Low;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel5, &DMA_InitStructure);
DMA_DeInit(DMA1_Channel4); //Rx
DMA_InitStructure.DMA_PeripheralBaseAddr = SPI_SLAVE_DR_Base;
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SPI_SLAVE_Buffer_Rx;//Rx
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = BufferSize;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel4, &DMA_InitStructure);
SPI_Cmd(SPI2, ENABLE);
/* Enable SPI_SLAVE Tx request */
SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Tx, ENABLE);
SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Rx, ENABLE); //;;;;
DMA_Cmd(DMA1_Channel5, ENABLE);
DMA_Cmd(DMA1_Channel4, ENABLE);
DMA_ITConfig(DMA1_Channel5, DMA_IT_TE, ENABLE); //Tx
DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE); //Rx..need
}
代码如上,如果我以8位的方式传输,就没有问题
-
一个字:有。
-
还没冒烟就不错了^_^
-
好,不错,支持一下
-
这边宏定义只是为了保护现场,异常处理结束以后返回啊。
没有这个就出不来了。
-
没人调试过?
-
重新build and sysgen就没问题了
-
你是说xdata吧,我还真没听过xbyte
xdata在C51里面一般是用在定义变量的时候,加此前缀可以使编译器在编译时,将该变量的地址定在外部ram中,然后在使用该变量时,编译器会将值传递的函数自动转译成DPTR的形式来对该变量进行读写。
-
除了2416 不带标准的camera接口这点不好,其他真的很好了。呵呵
-
编译器不知道mylink是什么东西,也不需要知道。
指针的声明只是告诉编译器什么类型需要多少空间而已。
在声明的时候,哪怕你写个
struct ComilerIsSB{
int a;
struct ComilerIsSB *p;
}
编译器也不会跳出来反驳你。
-
没弄过,帮顶下。
MARK.
-
LZ是什么系统?
记得好像有个系统,应用启动默认是全屏显示的.如果要修改,需要在窗口创建前将一全局变量修改为FALSE,但具体记不清楚了.
如果不是这个系统,直接如1L所说.
-
我也是个初学者 给你一些很好的视频希望对你有帮助
十问嵌入式
编程语言选择 http://www.uplooking.com/video/play/5803/
操作系统的选择 http://www.uplooking.com/video/play/5802/
汇编语言的作用 http://www.uplooking.com/video/play/5801/
ARM与单片机 http://www.uplooking.com/video/play/5800/
ARM概述 开发板 http://www.uplooking.com/video/play/5799/
ARM概述 http://www.uplooking.com/video/play/5798/
嵌入式学习 http://www.uplooking.com/video/play/5797/
嵌入式实例iphone http://www.uplooking.com/video/play/5796/
什么是嵌入式 http://www.uplooking.com/video/play/5795/
嵌入式漫谈2 http://www.uplooking.com/video/play/5794/
嵌入式漫谈1 http://www.uplooking.com/video/play/5793/
嵌入式前景http://www.uplooking.com/video/play/5624/
嵌入式最佳入门教程
Linux系统移植 仿真器 ICE等1 http://www.uplooking.com/video/play/6071/
Linux系统移植 仿真器 ICE等2 http://www.uplooking.com/video/play/6070/
AC97声卡裸板驱动开发1 http://www.uplooking.com/video/play/6069/
AC97声卡裸板驱动开发2 http://www.uplooking.com/video/play/6068/
计算机原理 处理器及汇编演示1 http://www.uplooking.com/video/play/6067/
计算机原理 处理器及汇编演示2 http://www.uplooking.com/video/play/6066/
计算机原理 处理器及汇编演示3http://www.uplooking.com/video/play/5245/
嵌入式处理器结构总线种类及嵌入式开发板1 http://www.uplooking.com/video/play/6065/
嵌入式处理器结构总线种类及嵌入式开发板2 http://www.uplooking.com/video/play/6064/
汇编语言 C语言演示 交叉编译 及内存管理1 http://www.uplooking.com/video/play/6063/
汇编语言 C语言演示 交叉编译 及内存管理2 http://www.uplooking.com/video/play/6062/
汇编语言 C语言演示 交叉编译 及内存管理3 http://www.uplooking.com/video/play/6061/
走近嵌入式 嵌入式产品开发过程 http://www.uplooking.com/video/play/6060/
嵌入式处理器种类 http://www.uplooking.com/video/play/6059/
嵌入式开发学习基础 http://www.uplooking.com/video/play/6058/
嵌入式开发概念及嵌入式行业职业划分1 http://www.uplooking.com/video/play/6057/
嵌入式开发概念及嵌入式行业职业划分2 http://www.uplooking.com/video/play/6056/
嵌入式开发概念及嵌入式行业职业划分3 http://www.uplooking.com/video/play/6055/
嵌入式处理器DataSheet及开发板结构1 http://www.uplooking.com/video/play/6054/
嵌入式处理器DataSheet及开发板结构2 http://www.uplooking.com/video/play/6053/
-
1 要是还是做商务性质的工作,做个商务助理类似小秘,,那等我老去青春不在,没有掌握一定的技术,今后怎么办呢
这个最好的办法,,,搒个大款
2 可是做技术的话是不是总要加班熬夜 透支健康?而且做哪种技术适合女孩呢,,自己能做好么?也是未知
一般做硬件的公司都有自己的成熟产品,刚进去会先安排一些维护的工作,不是很累,
就算有新产品需要研制,也都有项目周期,不会太累
做软件外包就不一样了,,,这个项目完了接着派到下一个,项目月月延期,客户日日催促,这是最累的
3 工资也是同学们中最低的
做技术的话,先别在意头几年的工资, 得知道能学到什么, 对以后有什么帮助
-
不好意思,我表述有点错误,我关注的重点是应用层怎样从WINCE camera驱动中获取实时的一帧图像,无编码压缩的。
自己想的是在驱动层或者在应用层中创建一个事件,标示接收完一帧数据,然后通知应用层的接收图像线程,
直接MemryCopy一次。不知道此方法是否可行,还有没有更加优化的方法。
如果使用的DeviceIoControl来获取图像,控制的命令字是什么。
如果使用DirectShow来获取图像,处理的额方法又是什么,最好有实例代码!
-
这个有MUX协议,就是一路在gprs状态一路在gsm状态。当你拨号上网时还可以接收到串口的at指令,如果有电话串口中会有一条指令的具体的忘记了可能还看你是哪家模块了?
-
好东东,收藏
-
质量好一些好不好
-
这有可能吗
-
选了字体压缩要减小4M左右,但是让SD卡里显示框框似乎很困难,并且,这个要求挺奇怪的。