-
最好用示波器看看波形对不对。
也可以改改参数试试(把时序改慢点),把下面参数都改成 15:
p.FSMC_AddressSetupTime = 2;
p.FSMC_AddressHoldTime = 1;
p.FSMC_DataSetupTime = 5;
-
具体还要看你需要开发的功能,51或者是ARM,需要什么装什么操作系统
-
已经报名了,努力中----再次感谢各位,谢谢!
-
看了一下我的SD卡接线与天嵌科技的一模一样,于是我把天嵌科技的TQ2440的BSP包拿过来,把它的SD卡驱动改了一下放到了我的BSP包驱动文件夹内,修改的地方有File文件夹下的platform.reg和platform.bib,分别加上了相应内空,并在BSP包的根目录下SMDK2440.bat加入了set BSP_SDHC_SC2440=1,因为在platform.bib文件中加入的内容是这样的:
IF BSP_SDHC_SC2440
sdhc_sc2440.dll $(_FLATRELEASEDIR)\sdhc_sc2440.dll NK SH
ENDIF BSP_SDHC_SC2440
另个我还修改了驱动文件夹SDHC下的sources文件,在PB内编译也通过了,在PB的platform中,我也添加了Device Drivers\SDIO\SD Memory组件,平台编译也通过了,可放到板子上为什么在“我的设备”里面没有SD卡的图标呢?
-
帮你顶
-
怎么还没人回答啊,我也遇到同样的问题了!!高手帮忙啊!!!
-
IIC 24C02主要是熟悉它的时序图再写程序,并不难!
-
同意二楼的,建议楼主去看下操作系统任务调度的原理,从最基本的开始讲是由于硬件定时器每隔一定时间(就是操作系统的系统时钟周期)产生中断,中断响应函数里面就直接产生了系统调度,所以无论你怎么个死循环,也没有关系,只要不要关掉中断,系统调度在每一个系统时钟周期都会产生
-
终端使用一个MCU通过UART口接收GPS模块接收到的数据,再把这些数据由GPRS模块发送到PC端的接收设备,接收设备通过串口发送给PC,GIS系统通过串口读取数据。
-
KITL,呵呵。看俺的博客有配置的。
-
一般说,开发的技术含量的高低依次为硬件模拟、硬件数字、软件。
-
UP 5楼!
个人觉得,真做驱动的话没必要一步步慢慢往下走。
如果有机会,那就硬着头皮做一次最底层的、驱动裸芯片,驱动一下串口或I2C、再枚举配置一下PCI/PCIE。
否则硬件对软件人员而言总是很神秘的。
-
很简单,如果想不用别人的工具,可以参照下面的代码
===============================
/*
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MEM]
"Dll"="MyMemoryDrv.dll"
"Prefix"="MEM"
"Index"=dword:1
"Order"=dword:0
"FriendlyName"="MEM driver"
*/
#define MEM_DRV_NAME L"MEM1:"
bool LoadMemDrv(void)
{
BOOL bRetVal = false;
// Step1: modify the registry
class CReg MemDrvReg;
bRetVal = MemDrvReg.Create(HKEY_LOCAL_MACHINE, MEM_DRV_PATH);
bRetVal= MemDrvReg.SetSZ(L"Dll", L"MyMemoryDrv.dll");//, sizeof(L"MyMemoryDrv.dll")/sizeof(TCHAR));
MemDrvReg.SetSZ(L"Prefix", L"MEM");//, sizeof(L"MEM")/sizeof(TCHAR));
MemDrvReg.SetDW(L"Order", 0);
MemDrvReg.SetDW(L"Index", 1);
MemDrvReg.SetDW(L"Index", 1);
MemDrvReg.SetSZ(L"FriendlyName", L"MEM driver");//, sizeof(L"MEM driver")/sizeof(TCHAR));
// Step2: load driver unsing device manager
hActiveMemDrv = INVALID_HANDLE_VALUE;
hActiveMemDrv = ActivateDevice(MEM_DRV_PATH, 0);
if (INVALID_HANDLE_VALUE == hActiveMemDrv)
{
LogMessage(L"[ERR]Load driver %s failed", MEM_DRV_FULL_PATH);
goto EXIT;
}
// Step3: Open stream driver
hFile = INVALID_HANDLE_VALUE;
hFile = CreateFile(MEM_DRV_NAME,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
LogMessage(L"[ERR] Open stream driver %s failed. Error code 0x%8x", MEM_DRV_NAME, GetLastError());
goto EXIT;
}
bIsDrvLoad = true;
bRetVal = TRUE;
EXIT:
return (bRetVal == TRUE);
}
或者http://blog.eeworld.net/guopeixin/archive/2009/12/01/4917210.aspx
-
引用 4 楼 yashi 的回复:
对文件的读操作,做一些修改。
这样最简单
-
引用 4 楼 xiaohaixiaoru 的回复:
哈哈,只能在出货前校准 了,还有个问题......NTC温度传感器里的B值是什么?作用及影响?
是热敏电阻的阻值特性,相同的B值,电阻和温度的对应都是一样的,不同b值的会有偏差!主要在高温区和低温区,中间温度的偏差小些!
-
拨上了,硬件流控问题,但是现在出现很多新的问题哦
USB在传输数据时,出现错误
具体错误还在查找
-
MC1000 和MC50在使用扫描的程序一样吗 我MC50上面的版本是4.2我使用的SDK的版本是 emdk2.2 这个程序在第一次进入扫描的页面还可以呢 可是你退出来 第二次在进入扫描的页面的时候就不能用了 出现错误:SCAN_Eable 难道也是版本不匹配吗??
-
SPI的速率是多少?如果太快了有可能造成DMA来不及响应而产生错误。
-
是的 rashungup确实要很长时间,你可以用evc调试看到需要多少秒?问题是我们没有像你这样做?mux就是上面各位牛人讲的多路复用?不过这个问题很多,需要你慢慢调试呢?
-
1 很有可能是没有进行滤波,一般的触摸屏驱动都有Touch_Pen_Filtering(INT *px, INT *py)这个函数,你看有没有对它进行调用,还有TSP_INVALIDLIMIT这个参数,是控制两个相邻的采样点的间距的,也就是如果两个点相差很大,就默认后一次采到的点是无效的。
2 硬件也有可能,触摸板 参考电压都有可能。首先看下参考电压是否稳定,就是触摸屏的那四个脚是否稳定。换块板试下。