74227lgf

    1.                                  STM8还是自己写吧,不是很难的
    2. stm8调试出现的问题 11/6185 stm32/stm8 2010-08-06
                                       在编译器设置中使用大堆栈就好了
    3. 求助高手关于wince下对excel的操作 6/5510 WindowsCE 2010-06-28
      如果你把EXCEL文件不是通过Activesync传过去,而是通过其他方式(比如U盘)拷贝到Win CE下,会怎么样呢?
    4. 最近用STM8S,感觉还不错 19/6885 stm32/stm8 2010-06-25
                                       应该是指 静电 辐射 快脉冲 和浪涌是电源级EMC问题
    5. 优盘unknown driver 问题 2/2882 嵌入式系统 2010-06-09
      与电脑没关系,我都换了好几个电脑试过了,u盘最后一次使用弹出的对话框是直接让格式化,格式化了以后就什么都没了,现在电脑都发现不了这个U盘,用芯片检测工具检测到的是unknown driver 高手说说看是什么情况
    6. 再检查一下代码吧,看看里面有没有link这个dll对应的导入库, 如果有的话也是需要去掉的。
      都应该查什么关键字?很多代码是别人写的
    7. 关于单片机控制电机(提升机)设计 7/3645 嵌入式系统 2010-04-28
      要是步进电机,就相对简单了,呵呵。。。
    8. 这个在背光驱动里实现就行了吧,没必要改PM的代码。
    9.                                   DSP和M3是两种从构架和用途来讲都有很大差异的处理器,楼主能够用M3取代DSP的应用是因为对运算要求不高,是因为拿DSP去和M3的长处比较,是因为以前的设计使用了错误的器件。 M3擅长的,DSP基本都不擅长,DSP擅长的,M3也没法比,这里无所谓好坏,只看是否适合,楼主选M3的原因归结起来就一句话,并不是因为M3比DSP强,而是在楼主的应用领域,它比DSP更合适。STM32是MCU,关注控制,2811是DSP,关注运算。 也回一下6楼,虽然M3支持硬件除法和乘法,但只能说它有乘法和除法指令,并不能说它有硬件除法器和乘法器,此乘除法器和彼乘除法器是不同的,这种不同是在硬件逻辑上的实现而不是表现给用户的指令上的不同。学过计算机组成原理的都知道,所谓“硬件乘法器”和“硬件除法器”特指DSP中的那种矩阵式的乘除法器,其他的都是通过算法实现,即便是从硬件上实现,否则STM32就改叫DSP了,也就不卖这么便宜了。这种不同在处理大批量复杂运算上可以很明显的体现出来,这点对没有体验过DSP上FFT运算的人来说确实比较模糊。
    10. 如何学习单片机呢? 14/6424 嵌入式系统 2010-04-16
      买个开发板,好好调试一下里面的例子程序,把那些程序都掌握了,你的单片机也就入门了。
    11. nb0还要补很多个0呵呵
    12. 呵呵, 我来凑个 热闹啊!! 楼主 散分? 呵呵,没具体问题
    13. sndPlaySound是可以简单实现的,再试试吧
    14. 没研究过,也问下传真来的数据怎么接收的!解决了接收应该问题解决了一大半了(我的感觉)
    15. MDK自带flash自带烧写程序的问题 3/4063 嵌入式系统 2009-12-29
      引用 1 楼 tuoxie38 的回复: 我烧的是片内的Flash,没问题。你的问题就两个可能,Flash的地址和驱动。我感觉你不能跨block还是驱动的问题
      你烧的是片内的FLASH,也是用的2410的开发板吗? 你的片内FLASH多大,你烧录时起始位置是多少呢 但是我烧录一个很小的跑马灯程序(1.5KB)运行可相当正常的啊。
    16. WINCE 5.0 是否支持“位图画刷” 11/3428 WindowsCE 2009-12-28
      支持五楼。。。
    17. 新建->工程->smart device->MFC smart device application->(然后选择自己的SDk) 就可以了
    18. 关于定时器的问题 9/4271 嵌入式系统 2009-11-26
      每天发帖
    19. 我的有呢,可能是你安装的问题吧
    20. 也在看串口这块的东西,觉得16550其实跟6410/2440是一个道理,分MDD+PDD层,PDD层实现MDD要调用的接口函数.获取成功(其实就是HW_VTBL函数表)MDD就可以通过这个PDD接口访问PDD层的底层硬件了(也就是些SFR操作),对于6410/2440就是那些UART的SFR了,对于你说的16550估计在整个系统内存空间也占有(或者映射)了一片地址,16550内部的SFR也可以通过访问这片内存地址来访问,觉得道理是一样的.不过MDD跟PDD层的几个有继承关系的类应该好好把握,因为很多很多接口都是虚函数实现而虚函数带来了灵活但给我们的理解带来了困难.子类重载了父类的虚函数调用的时候具体应该调那一个. 觉得理顺层次关系很重要!!! 1>class CPdd6410Uart: public CSerialPDD, public CMiniThread 2>class CPdd16550 : public CSerialPDD, public CMiniThread class CPdd6410Uart跟class CPdd16550 的角色跟地位是一个样!!! 下面的代码应该就是事件跟中断号的绑定代码!!!! BOOL CPdd6410Uart::Init() {     if ( CSerialPDD::Init() && IsKeyOpened() && m_XmitFlushDone!=NULL)     {         // IST Setup .         DDKISRINFO ddi;         if (GetIsrInfo(&ddi)!=ERROR_SUCCESS)         {             return FALSE;         }         m_dwSysIntr = ddi.dwSysintr;         if (m_dwSysIntr !=  MAXDWORD && m_dwSysIntr!=0 )         {             m_hISTEvent= CreateEvent(0,FALSE,FALSE,NULL);         }         if (m_hISTEvent!=NULL)         {             InterruptInitialize(m_dwSysIntr,m_hISTEvent,0,0);         }         else         {             return FALSE;         }         // Get Device Index.         if (!GetRegValue(PC_REG_DEVINDEX_VAL_NAME, (PBYTE)&m_dwDevIndex, PC_REG_DEVINDEX_VAL_LEN))         {             m_dwDevIndex = 0;         }         if (!GetRegValue(PC_REG_SERIALWATERMARK_VAL_NAME,(PBYTE)&m_dwWaterMark,PC_REG_SERIALWATERMARKER_VAL_LEN))         {             m_dwWaterMark = 8;         }         if (!GetRegValue(PC_REG_6410UART_IST_TIMEOUTS_VAL_NAME,(PBYTE)&m_dwISTTimeout, PC_REG_6410UART_IST_TIMEOUTS_VAL_LEN))         {             m_dwISTTimeout = INFINITE;         }         if (!GetRegValue(PC_REG_6410UART_MEM_LENGTH_VAL_NAME, (PBYTE)&m_dwMemLen, PC_REG_6410UART_MEM_LENGTH_VAL_LEN))         {             m_dwMemLen = 0x40;         }         if (!MapHardware()  || !CreateHardwareAccess())         {             return FALSE;         }         return TRUE;             }     return FALSE; } 复制代码 BOOL CPdd16550::Init() {     if ( CSerialPDD::Init() && IsKeyOpened() && m_XmitFlushDone!=NULL) {         // IST Setup .         DDKISRINFO ddi;         if (GetIsrInfo(&ddi)!=ERROR_SUCCESS) {             return FALSE;         }         m_dwSysIntr = ddi.dwSysintr;         if (m_dwSysIntr !=  SYSINTR_UNDEFINED && m_dwSysIntr!=0 )             m_hISTEvent= CreateEvent(0,FALSE,FALSE,NULL);                  if (m_hISTEvent!=NULL) {             if (!InterruptInitialize(m_dwSysIntr,m_hISTEvent,0,0)) {                 m_dwSysIntr = SYSINTR_UNDEFINED ;                 return FALSE;             }         }         else             return FALSE;                  // Get Device Index.         if (!GetRegValue(PC_REG_DEVINDEX_VAL_NAME, (PBYTE)&m_dwDevIndex, PC_REG_DEVINDEX_VAL_LEN)) {             m_dwDevIndex = 0;         }         if (!GetRegValue(PC_REG_SERIALWATERMARK_VAL_NAME,(PBYTE)&m_dwWaterMark,sizeof(DWORD))) {             m_dwWaterMark = 8;         }         if (!MapHardware() || !CreateHardwareAccess()) {             return FALSE;         }                  return TRUE;             }     return FALSE; } 复制代码

最近访客

< 1/1 >

统计信息

已有112人来访过

  • 芯积分:--
  • 好友:--
  • 主题:14
  • 回复:59

留言

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


现在还没有留言