-
中断标志置位,中断未响应,数据被覆盖掉了。程序中肯定还有其他的中断,你把这些代码屏蔽掉再试试,肯定OK~~~~~~
-
void FSMC_SRAM_Init(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef p;
/*-- FSMC Configuration ------------------------------------------------------*/
p.FSMC_AddressSetupTime = 2;
p.FSMC_AddressHoldTime = 1;
p.FSMC_DataSetupTime = 5;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_B;
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;/////
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
//FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
/* Enable FSMC Bank1_SRAM Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE);
}
void FSMC_SRAM_WriteBuffer(u16* pBuffer, u32 WriteAddr, u8 NumHalfwordToWrite)
{
*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer;
}
void Write_COM(uint16_t Reg_Addr)
{
FSMC_SRAM_WriteBuffer(&Reg_Addr, 0x00000000, 1);
}
void Write_DATA(uint16_t Data)
//void Wr_LCD_Data(u16 Data)
{
FSMC_SRAM_WriteBuffer(&Data, 0x00800000, 1);
}
-
请问怎么进入dos啊,我在附件->命令提示符里面,是这样的吗,有谁帮指导下啊
-
根据香水斑竹的思路修改了部分,如下:
uint32 tempcount;
uint32 *target1;
tempcount=(uint32)((&tempdata1)-0x20000000);
target1=(uint32*)(0x22000000+tempcount*32);
//tempdata1别名区的地址,bit0
for (RowCount=0;RowCount<4096;RowCount++)
{
target1[7]=*psrc>>7;
target1[5]=*psrc1>>7;
target1[3]=*psrc2>>7;
target1[1]=*psrc3>>7;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc>>6;
target1[5]=*psrc1>>6;
target1[3]=*psrc2>>6;
target1[1]=*psrc3>>6;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc>>5;
target1[5]=*psrc1>>5;
target1[3]=*psrc2>>5;
target1[1]=*psrc3>>5;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc>>4;
target1[5]=*psrc1>>4;
target1[3]=*psrc2>>4;
target1[1]=*psrc3>>4;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc>>3;
target1[5]=*psrc1>>3;
target1[3]=*psrc2>>3;
target1[1]=*psrc3>>3;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc>>2;
target1[5]=*psrc1>>2;
target1[3]=*psrc2>>2;
target1[1]=*psrc3>>2;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc>>1;
target1[5]=*psrc1>>1;
target1[3]=*psrc2>>1;
target1[1]=*psrc3>>1;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
target1[7]=*psrc;
target1[5]=*psrc1;
target1[3]=*psrc2;
target1[1]=*psrc3;
GPIOA->ODR =tempdata1;
CS_H;
CS_L;
psrc++;
psrc1++;
psrc2++;
psrc3++;
}
后面的源数据我还是暂时通过移位来实现,和之前比较,简捷了很多。
编译OK ,运行,先不管数据组织的对不对!
速度没有提高,每秒的运行次数反而下降了30次左右........
-
开发板的JTAG引到我自己的板子上?这样也行吗
-
回调函数如果是系统提供的,那就可以不用管需要什么条件,因为它是条件符合时系统自调用的
-
关注。静待解决
-
假设你有一个dll,文件名yourdll.dll,里面有个函数JustTest(UINT, UINT)
调用的demo如下:
HINSTANCE hInstance;
HANDLE (FAR *lpFunction1)(UINT, UINT);
if ((hInstance = LoadLibrary("yourdll.dll")) == NULL)
{
MessageBox("Can not found yourdll.dll!", "Initialization error", MB_OK);
return FALSE;
}
lpFunction1= (HANDLE (FAR*)(UINT, UINT))GetProcAddress(hInstance, "JustTest");
if (lpFunction1== NULL)
{
MessageBox("Fail to load function JustTest!", "Initialization error", MB_OK);
return FALSE;
}
复制代码
如果Load成功,就可以直接调用(*lpFunction1)(UINT, UINT)了,这个就是你的JustTest。
你好好看下MSDN,很快就能学会的。
-
引用 1 楼 kacyquan 的回复:
不太明白什么意思。是不是说就是更新一个动态库,我觉得只要将要更新的DLL复制到windows(原DLL就在这里)目录下就可以了吧。帮顶,学习。
是在原有对话框基础上在多加一个更新按纽,更新原来的dll文件。
-
引用 3 楼 yashi 的回复:
先按开发板的说明书,做实验吧,心急吃不了热豆腐。
谢谢
-
引用 9 楼 wolfmvp 的回复:
引用楼主 rattlerattle 的回复:
各位大虾们,我现在用PCM-3586(CPU:vortex86DX)的板子开发一个程序,现在遇到了一个很棘手的问题,就是开发板不能同vs2005连接进行调试程序,必须通过U盘拷到板子上面去,非常麻烦。前几天试过用一根双公口的USB线让板子同PC连起来,但失败了。
我的这块板子上的是ce6.0的操作系统,板子上有一个网口,四个串口,两个普通的USB口……
Active Sync我装上了,用一个串口线连在PC上面还是没反映,串口线是不是得特制?我用的是串口延长线
-
不能两个同时发,最好搞一个延时,一个默认先发,另一个估计前一个发完了再发。。
另外485应该是半双工的吧。。。
-
对不起
硬件知识特别不行
应该是南桥芯片和北桥芯片
呵呵
我的电脑键盘也修过
因为不懂
后来我朋友说
键盘是不能修,必须是换原装的,对吗
我的电脑早过保修期了
哎
才2年多啊
算了
还是存钱买吧
-
用勾子不是可以实现吗,CE中键盘按下去可以勾到(keydown)信号,要是松手的话可以勾到(keyup)信号。在一直有keydown信号的时候不是可以进行相应的操作了?
-
是不是烧写的时候设置不对
-
你程序里,哪里给了低电平呢,我咋没找到
-
引用 9 楼 guopeixin 的回复:
1. 其实ms也有很多版本的sdbus,因为它主要负责协议层的处理和bus request的转换,中间多次更新过
2. bus的代码可以在public下找到,可以自己修改编译
3. 修改注册表可以实现两个bus的独立加载,目前看起来没有问题
4. IClass = multi_sz:"{20FA98A8-B298-4b32-8D72-C716AEE2FA84}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"应该不是标准的bus中的注册项吧
学习
-
无操作系统下的ARM 跟单片机很像 只是资源多了一些,楼主有单片机的基础,学ARM入门会很快的,等到无操作系统下的东西整完了 就要接触操作系统了,看楼主想学哪个了?WIN-CE?linux?Vxworks??
至于推荐书 我也没有买过 都是看的手册 手册是最好的书,呵呵
-
没做过友情帮顶!
-
学习