dipdianzi

    1. 为什么有些设计并联了几十个电容 9/6000 stm32/stm8 2010-11-26
                                       2楼分析的很对,这要从电容的作用来分析,很多引脚都要去耦
    2.                                  怎么算正常呢,运行中出现了非正常复位, 谢谢 请提供支援  呵呵
    3. MDK全局变量初始化的问题 3/9233 stm32/stm8 2010-07-19
                                       都没遇到过这个问题吗?怪事。。。 现在把项目移植到IAR上正常了。
    4. STM8S103K使用I2C通信经常出错 24/10455 stm32/stm8 2010-07-01
                                        瑞萨跟103K断开来测量波形, 量到的波形是干干净净的 而即使把103K设置成输入端口, 波形还是那样的杂波, 每个上升沿都有
    5. 盗版V8 J-Link是否支持ARM11? 31/15025 ARM技术 2010-06-21
      对了,我的J-LINK软件驱动版本是:4.02a
    6. 我的板子外部晶振不起振,怎么办? 9/9292 stm32/stm8 2010-05-20
                                       这个1M的电阻据说是为了容易起振用的。我去掉试过,还是不行
    7. windows7下怎么装不了ce6.0的update? 11/6311 嵌入式系统 2010-04-27
      似乎你的安装顺序不对, 1,vs2005 2.wince6.0 3.vs2005sp1 4.s2005 for vista 5.wince6.0 sp1 6.wince6.0 r2 7.update.
    8. 锂电池充电问题 5/2556 嵌入式系统 2010-03-19
      板子没有跑,我只测量的电池,我有个带控制的LDO,没有开,所以我的VCC没有电,也就是说充电的同时并没有向外部供电
    9. 请教一个PIC单片机的问题, 7/4195 Microchip MCU 2010-03-01
      void send(uchar data) { uchar i; for (i = 0; i < 8; i++) { scl = 0; if (data & 0x80) { sda = 1; } else { sda = 0; } scl = 1; data
    10. ARM板上如何增加显卡芯片 24/10462 ARM技术 2010-02-24
      引用 3 楼 oneonce 的回复: 引用 1 楼 xumercury 的回复: 显示IC?不是都和屏是捆绑配套的吗。。。这个IC是有的。例如说MPU的屏就在LCD板子上,AU或者其他的屏都是有屏驱动的。没有屏驱动IC不知道如何能点亮屏。除非ARM上自己带了能驱动屏的功能部件。 我的意思是我编出一个NK,不管在多大尺寸屏上都能显示正常。应该是有这样的IC的,我似乎见过别人2440这样做了。
      这样不提高产品成本了?
    11. why我的UART1不产生接收中断啊 3/3513 stm32/stm8 2010-01-29
                                       //系统NVIC初始化 void NVIC_Configuration(void) {         #ifdef  VECT_TAB_RAM                    NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);                // Set the Vector Table base location at 0x20000000         #else  // VECT_TAB_FLASH                   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);                // Set the Vector Table base location at 0x08000000         #endif         /* Configure the NVIC Preemption Priority Bits */           NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);         /* Enable the USART1 Interrupt */         NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; //        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         NVIC_Init(&NVIC_InitStructure);         /* Enable the USART2 Interrupt */         NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQChannel;         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         NVIC_Init(&NVIC_InitStructure); } 会的朋友帮我看一下,谢谢了,我的两个串都不进入不了接收中断,可以接收波形已经到了IO口了,就是不中断!
    12. 关于WINCE位图显示的问题 6/3106 WindowsCE 2010-01-26
      楼主测试一下上面的代码 记不大清楚了 这样写貌似可以
    13. 急! 5/2474 嵌入式系统 2010-01-23
      不懂就问老师,勤学善问啊。
    14.                                   正常俺们都加一个宏 代表自己的代码版本 从中可以区分出是芯片型号 用多大容量之类的
    15. 求一款wince6 可用的输入法。 16/5131 WindowsCE 2010-01-10
      5.0下用的手写输入发,但是好像没有源码
    16. wince 6.0 spi接口中断 如何 应用 调用 19/8818 WindowsCE 2009-12-20
      PSPI_PUBLIC_CONTEXT SPI_Init(PVOID Context) {     LPTSTR                          ActivePath = (LPTSTR) Context; // HKLM\Drivers\Active\xx     PSPI_PUBLIC_CONTEXT        pPublicSpi = NULL;     BOOL                            bResult = TRUE;     DWORD                       dwHwIntr=0;     RETAILMSG(SPI_INIT,(TEXT("++[SPI] HSP_Init Function\r\n")));     RETAILMSG(SPI_MSG,(TEXT("[SPI] Active Path : %s\n"), ActivePath));     if ( !(pPublicSpi = (PSPI_PUBLIC_CONTEXT)LocalAlloc( LPTR, sizeof(SPI_PUBLIC_CONTEXT) )) )     {         RETAILMSG(SPI_INIT,(TEXT("[SPI] Can't not allocate for SPI Context\n")));         return NULL;     }     if ( !(pRestoreSPIregs = (PS3C6410_SPI_REG)LocalAlloc( LPTR, sizeof(S3C6410_SPI_REG) )) )     {         return NULL;     }     if(!HW_Init(pPublicSpi))     {         RETAILMSG(SPI_INIT,(TEXT("[SPI] HW_Init is failed\n")));         return NULL;     }     else     {         RETAILMSG(SPI_INIT,(TEXT("[SPI] HW_Init is completed\n")));     }     if(!InitializeBuffer())     {         RETAILMSG(SPI_INIT,(TEXT("[SPI] InitializeBuffer is failed\n")));         return NULL;     }     else     {         RETAILMSG(SPI_INIT,(TEXT("[SPI] InitializeBuffer is completed\n")));     }     // Request DMA Channel     // DMA context have Virtual IRQ Number of Allocated DMA Channel     // You Should initialize DMA Interrupt Thread after "Request DMA Channel"     DMA_request_channel(&g_OutputDMA, DMA_SPI0_TX);     DMA_request_channel(&g_InputDMA, DMA_SPI0_RX);     do     {         InitializeCriticalSection(&(pPublicSpi->CsRxAccess));         InitializeCriticalSection(&(pPublicSpi->CsTxAccess));         //Rx Thread         pPublicSpi->hRxEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         pPublicSpi->hRxThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ThreadForRx, (LPVOID)pPublicSpi, 0, (LPDWORD)&pPublicSpi->dwRxThreadId);         if (pPublicSpi->hRxThread == NULL)         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] SPI Rx Thread creation error!!!\n")));             bResult = FALSE;             break;         }         pPublicSpi->hRxDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         pPublicSpi->hRxIntrDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         //Tx Thread         pPublicSpi->hTxEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         pPublicSpi->hTxThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ThreadForTx, (LPVOID)pPublicSpi, 0, (LPDWORD)&pPublicSpi->dwTxThreadId);         if (pPublicSpi->hTxThread == NULL)         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] SPI Dma Thread creation error!!!\n")));             bResult = FALSE;             break;         }         pPublicSpi->hTxDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         pPublicSpi->hTxIntrDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         //Spi ISR         pPublicSpi->dwSpiSysIntr = SYSINTR_NOP;         dwHwIntr = IRQ_SPI0;        //HS-SPI         pPublicSpi->hSpiEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwHwIntr, sizeof(DWORD), &pPublicSpi->dwSpiSysIntr, sizeof(DWORD), NULL))         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] Failed to request the SPI sysintr.\n")));             pPublicSpi->dwSpiSysIntr = SYSINTR_UNDEFINED;             bResult = FALSE;             break;         }         if (!InterruptInitialize(pPublicSpi->dwSpiSysIntr, pPublicSpi->hSpiEvent, NULL, 0))         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] SPI Interrupt Initialization failed!!!\n")));             bResult = FALSE;             break;         }         pPublicSpi->hSpiThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ThreadForSpi, (LPVOID)pPublicSpi, 0, (LPDWORD)&pPublicSpi->dwSpiThreadId);         if (pPublicSpi->hSpiThread == NULL)         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] SPI ISR Thread creation error!!!\n")));             bResult = FALSE;             break;         }         //Tx DMA Done ISR         pPublicSpi->dwTxDmaDoneSysIntr = SYSINTR_NOP;         dwHwIntr = g_OutputDMA.dwIRQ;         pPublicSpi->hTxDmaDoneDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         pPublicSpi->hTxDmaDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwHwIntr, sizeof(DWORD), &pPublicSpi->dwTxDmaDoneSysIntr, sizeof(DWORD), NULL))         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] Failed to request the SPI_DMA sysintr.\n")));             pPublicSpi->dwTxDmaDoneSysIntr = SYSINTR_UNDEFINED;             bResult = FALSE;             break;         }         if (!InterruptInitialize(pPublicSpi->dwTxDmaDoneSysIntr, pPublicSpi->hTxDmaDoneEvent, NULL, 0))         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] DMA Interrupt Initialization failed!!!\n")));             bResult = FALSE;             break;         }         pPublicSpi->hTxDmaDoneThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ThreadForTxDmaDone, (LPVOID)pPublicSpi, 0, (LPDWORD)&pPublicSpi->dwTxDmaDoneThreadId);         if (pPublicSpi->hTxDmaDoneThread == NULL)         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] SPI Dma Thread creation error!!!\n")));             bResult = FALSE;             break;         }         //Rx DMA Done ISR         pPublicSpi->dwRxDmaDoneSysIntr = SYSINTR_NOP;         dwHwIntr = g_InputDMA.dwIRQ;         pPublicSpi->hRxDmaDoneDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         pPublicSpi->hRxDmaDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);         if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwHwIntr, sizeof(DWORD), &pPublicSpi->dwRxDmaDoneSysIntr, sizeof(DWORD), NULL))         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] Failed to request the SPI_DMA sysintr.\n")));             pPublicSpi->dwRxDmaDoneSysIntr = SYSINTR_UNDEFINED;             bResult = FALSE;             break;         }         if (!InterruptInitialize(pPublicSpi->dwRxDmaDoneSysIntr, pPublicSpi->hRxDmaDoneEvent, NULL, 0))         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] DMA Interrupt Initialization failed!!!\n")));             bResult = FALSE;             break;         }         pPublicSpi->hRxDmaDoneThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ThreadForRxDmaDone, (LPVOID)pPublicSpi, 0, (LPDWORD)&pPublicSpi->dwRxDmaDoneThreadId);         if (pPublicSpi->hRxDmaDoneThread == NULL)         {             RETAILMSG(SPI_INIT,(TEXT("[SPI] SPI Dma Thread creation error!!!\n")));             bResult = FALSE;             break;         }     } while (0);     RETAILMSG(SPI_INIT,(TEXT("--[SPI] HSP_Init Function\r\n")));     if(bResult)     {         return pPublicSpi;     }     else     {         return NULL;     } } DWORD SPI_Open(    DWORD         pContext,    DWORD        AccessCode,    DWORD        ShareMode) {     PSPI_PUBLIC_CONTEXT        pSpiPublic  = (PSPI_PUBLIC_CONTEXT) pContext;     PSPI_PRIVATE_CONTEXT    pSpiPrivate = NULL;     BOOL                    bResult     = TRUE;     if ( !(pSpiPrivate = (PSPI_PRIVATE_CONTEXT)LocalAlloc( LPTR, sizeof(SPI_PRIVATE_CONTEXT) )) )     {         RETAILMSG(SPI_MSG,(TEXT("[SPI] Can't not allocate for SPI Context\n")));         return (DWORD)NULL;     }     do     {         pSpiPrivate->State                = STATE_INIT;         pSpiPrivate->pSpiPublic            = pSpiPublic;         pSpiPrivate->bUseRxDMA        = FALSE;         pSpiPrivate->bUseRxIntr        = FALSE;         pSpiPrivate->bUseTxDMA        = FALSE;         pSpiPrivate->bUseTxIntr        = FALSE;     } while(FALSE);     if(bResult)     {         return (DWORD) pSpiPrivate;     }     else     {         return (DWORD) NULL;     } } DWORD SPI_Read(     DWORD     hOpenContext,     LPVOID     pBuffer,     DWORD     Count) {     PSPI_PRIVATE_CONTEXT pSpiPrivate = (PSPI_PRIVATE_CONTEXT)hOpenContext;     PSPI_PUBLIC_CONTEXT pSpiPublic = pSpiPrivate->pSpiPublic; //    DWORD dwReadSize;     HRESULT hr;     PBYTE     g_pMappedEmbedded;     PBYTE     g_pMarshalled;     //param check     if(pSpiPrivate->State != STATE_IDLE)     {         RETAILMSG(SPI_MSG,(TEXT("[SPI] READ ERROR : STATE IS NOT IDLE\n")));         return 0;     }     RETAILMSG(SPI_MSG,(TEXT("[SPI] pBuffer : 0x%X, Count : %d\n"), pBuffer, Count));     hr = CeOpenCallerBuffer((PVOID*) &g_pMappedEmbedded, pBuffer, Count, ARG_IO_PTR, FALSE);     hr = CeAllocAsynchronousBuffer((PVOID*) &g_pMarshalled, g_pMappedEmbedded, Count, ARG_IO_PTR);     if(pSpiPrivate->bUseRxDMA)     {         pSpiPrivate->pRxBuffer         = pVirtDmaDstBufferAddr;         pSpiPrivate->pRxDMABuffer     = (LPVOID)DmaDstAddress;     }     else     {         pSpiPrivate->pRxBuffer = g_pMarshalled;     }     RETAILMSG(SPI_MSG,(TEXT("[SPI] g_pMappedEmbedded 0x%x\n"),g_pMappedEmbedded));     RETAILMSG(SPI_MSG,(TEXT("[SPI] g_pMarshalled 0x%x\n"),g_pMarshalled));     pSpiPrivate->dwRxCount = Count;     pSpiPublic->pSpiPrivate = pSpiPrivate;     SetEvent(pSpiPublic->hRxEvent);     //Thread call     WaitForSingleObject(pSpiPublic->hRxDoneEvent, INFINITE);     pSpiPrivate->State = STATE_IDLE;     if(pSpiPrivate->bUseRxDMA)     {         memcpy(g_pMarshalled, pVirtDmaDstBufferAddr,Count);     }     hr = CeFreeAsynchronousBuffer((PVOID)g_pMarshalled, g_pMappedEmbedded, Count, ARG_IO_PTR);     hr = CeCloseCallerBuffer((PVOID)  g_pMappedEmbedded,   pBuffer, Count, ARG_IO_PTR);     RETAILMSG(SPI_MSG,(TEXT("[SPI] SPI_Read : Return Value : %d\n\n"),pSpiPrivate->dwRxCount));     return pSpiPrivate->dwRxCount ; }
    17. wince 打印相关 2/2524 WindowsCE 2009-12-17
      逻辑上没有问题啊...你只打印一页数据吗? 可以增加一个printdialog来选择打印设备 CPrintDialog dlg(FALSE); CDC dc; BOOLEAN bPrintingOK = FALSE; if (dlg.DoModal() != IDOK)             // Get printer settings from user     return; dc.Attach(dlg.GetPrinterDC());         // attach a printer DC
    18. 其实我是在嵌入式设备上做的, 连接电脑的时候设备作为U盘设备,  想连接电脑的时候运行里面的setup安装包, 原本想改一下设备属性让PC认识为光盘,然后弄一个autorun  不知道行不
    19. windows/linux下线程调度问题 9/5250 Linux与安卓 2009-10-25
      时间片的大小是内核内部设定的 基于时间片轮转调度算法,在时间片用完的时候,会触发调度函数 另外,进程/线程主动放弃CPU时,也会触发调度函数
    20. 如何检测电话来电振铃?? 14/5261 嵌入式系统 2009-10-09
      电压没关系啊,加个大功率电阻+稳压管+光耦就OK啦

最近访客

< 1/1 >

统计信息

已有91人来访过

  • 芯积分:--
  • 好友:--
  • 主题:7
  • 回复:76

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言