cqk62

    1. stm8的选项字节软件里怎么配置 14/18149 stm32/stm8 2010-09-15
                                       下面的程序是产品验证过的。 #include "flash.h" /* **----------------------------------------------------------------------------- ** **  Abstract: **        读FLASH选项字节的值 ** **  Parameters: **        Address   选项字节地址 ** **  Returns: **        返回选项字节某个地址的值,高8位为Address的值,低8位为Address+1的值 ** **----------------------------------------------------------------------------- */ unsigned int Flash_ReadOptionByte(unsigned int Address) {         unsigned char value_optbyte, value_optbyte_complement = 0;         unsigned int res_value = 0;                 value_optbyte = *((@near unsigned char*)Address);         value_optbyte_complement = *(((@near unsigned char*)Address)+1);                 res_value = (unsigned int)value_optbyte << 8;         res_value |= (unsigned int)value_optbyte_complement;         return(res_value); } /* **----------------------------------------------------------------------------- ** **  Abstract: **        擦除选项字节某个地址的值 ** **  Parameters: **        Address 选项字节某个地址 ** **  Returns: **        None ** **----------------------------------------------------------------------------- */ void Flash_EraseOptionByte(unsigned int Address) {         FLASH_CR2 |= 0x80;      //对选项字节进行写操作         FLASH_NCR2 &= ~0x80;                 *((@near unsigned char*)Address) = 0x00;         *((@near unsigned char*)(Address+1)) = 0xff;                 Flash_WaitForLastOperation();                 FLASH_CR2 &= ~0x80;      //对选项字节写禁止         FLASH_NCR2 |= 0x80; } /* **----------------------------------------------------------------------------- ** **  Abstract: **        写选项字节某个址址的值 ** **  Parameters: **        Address 选项字节某个地址 Data 要写的数据 ** **  Returns: **        None ** **----------------------------------------------------------------------------- */ void Flash_ProgramOptionByte(unsigned int Address, unsigned char Data) {         FLASH_CR2 |= 0x80;      //对选项字节进行写操作         FLASH_NCR2 &= ~0x80;                 FLASH_DUKR = 0xae;      //解除写保护密钥         FLASH_DUKR = 0x56;                 *((@near unsigned char*)Address) = Data;         *((@near unsigned char*)(Address+1)) = ~Data;                        Flash_WaitForLastOperation();                 FLASH_CR2 &= ~0x80;      //对选项字节写禁止         FLASH_NCR2 |= 0x80;        } /* **----------------------------------------------------------------------------- ** **  Abstract: **        选项字节擦写等待 ** **  Parameters: **        None ** **  Returns: **        None ** **----------------------------------------------------------------------------- */ unsigned char Flash_WaitForLastOperation(void) {         unsigned char flagstatus = 0;         unsigned int  timeout = 0x1000;                 while((flagstatus == 0)&&(timeout != 0))         {                 flagstatus = FLASH_IAPSR & 0x05;                 timeout--;         }         if(timeout == 0)         {                 flagstatus = 0x02;    //time out error         } } /* **----------------------------------------------------------------------------- ** **  Abstract: **        对选项字节的操作 ** **  Parameters: **        Address 选项字节某个地址 Data 要写的数据 ** **  Returns: **        None ** **----------------------------------------------------------------------------- */ void Flash_OptionOperation(unsigned int Address, unsigned char Data, unsigned int Value) {         unsigned int temp = 0;           do         {                 temp = Flash_ReadOptionByte(Address);                        if(temp != Value)                         Flash_ProgramOptionByte(Address, Data);                 if(temp == Value)                         temp = 0;         }while(temp);         FLASH_IAPSR &= ~0x08;                         //EEPROM写保护使能 }
    2. STM32端口操作遇问题 7/5060 stm32/stm8 2010-07-24
                                       现象是驱动不足,滤波不好。请贴电路图。
    3. 如何选择A/D 14/5075 嵌入式系统 2010-05-10
      用单片机自带的10位或者16位ad 就够了
    4. 自己先顶下。 呵呵
    5. STM8固件库如何使用? 17/18986 stm32/stm8 2010-03-29
                                       楼上正解。 库很好用的,特别对初学者来说。 文件多了点,但都很有序。
    6. vxworks5.5和6.4内存属性配置疑惑,马上结贴! 7/4344 实时操作系统RTOS 2010-03-24
      没弄过VxWorks, 帮顶下。
    7. 如何解决触摸屏每次开机都需要校准的问题 20/15727 嵌入式系统 2010-03-03
      楼主你看看你系统的注册表下是否有[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH]这条注册信息。 屏幕校正后CalibrationData键值会改变,如果在重启系统后CalibrationData键值又恢复到以前的值的话说明你没有实现HIVE注册表。
    8. 吃分,继续亢奋中!一路顺风!
    9. 寻找WINCE 开发高手 5/3551 嵌入式系统 2010-02-01
      先介绍一下项目,省得浪费表情
    10. WinCE 5.0 USB Mass Storage疑问 15/6336 嵌入式系统 2010-01-13
      引用 5 楼 guopeixin 的回复: 引用 4 楼 guopeixin 的回复: samsung flash驱动设计的问题,采用了所有r/w操作经由kerneliocontrol转接到oal的方式,所以优先级比较高,导致操作flash的时候系统cpu loading很高 如果想解决这个问题,可以改一下架构或者采用ms 的driver 另外,你点击触摸屏没有反应的时候,可不可以做如下尝试 1. 拷贝文件之前,在device上运行一个测试程序,如播放对象存储中音频文件的播放器,当触摸屏没有反应的时候看测试程序能够正常工作; 2. 在touch driver中每次检测到用户点击的时候输出log信息,看触摸屏没有反映的时候是否有中断的log信息输出
      谢谢,1、如果如你所说,我把SD卡上的数据拷贝到Pocketmory1时,系统是正常的,又如何解释?       2、先打开SD卡上的音频文件播放,通过USB Mass Storage拷贝数据到Nand时,音频播放会停在那里,直到拷贝完成才继续播放。
    11. S3C2440 Wince5.0 ActiveSync无法同步 35/10459 嵌入式系统 2010-01-13
      UFN_Init pContext->pUfnBus = new CUfnBus(pszContext, pContext); pContext->pUfnBus->Init //这里不知道总线驱动如何调用的BusIoControl "BusIoctl"=dword:2a0048 CUfnBus::PostInit dwRet = GetDefaultClientName(szClientName, dim(szClientName)); dwRet = CreateChild(szClientName, &pDevice); CUfnBusDevice *pDevice = new CUfnBusDevice pDevice->Init DeviceFolder::Init() //编译SerialUSBFn的时候使用了-DUSE_NEW_SERIAL_MODEL定义 //SerialUSBFn导出了一堆COM_XXX函数 源码Cserpdd.cpp (e:\ce60\public\common\oak\drivers\serial\serpddcm) COM_INIT SerInit CSerialPDD * CreateSerialObject pSerialPDD = new USBSerialFn(lpActivePath,pMdd, pHwObj); pSerialPDD->Init() CUsbFn::Init() UfnInitializeInterface fSuccess = BusChildIoControl(hBusAccess, IOCTL_UFN_GET_CLIENT_DATA_EX, &ucd, sizeof(ucd)); GetClientFunctions UfnMdd_RegisterDevice pdescClient = new CDescriptors; CDescriptors::RegisterDevice dwRet = pContext->PddInfo.pfnRegisterDevice( UfnPdd_RegisterDevice fErr = ActivateChild(m_szClientBusName); UFN_MDD_INTERFACE_INFO MddInterfaceInfo = {         UFN_PDD_INTERFACE_VERSION, &UfnMdd_Notify     }; dwErr = UfnPdd_Init(pszContext, pContext, &MddInterfaceInfo, &pContext->PddInfo); 在CUsbFn::Init()已经调用 StartUSBFunction ******dwRet = m_pUfnFuncs->lpStart(m_hDevice, DeviceNotifyStub, this,  &m_hDefaultPipe); UfnMdd_Start dwRet = pContext->PddInfo.pfnStart(pContext->PddInfo.pvPddContext); UfnPdd_Start 启动IST_MAIN 初始化之后插入USB线之前,只有IST_MAIN中使能了SusPend Mode 和 EP0的中断 系统启动,插不插USB线USB_SUSPEND_INTR都会触发两次 插入USB线,中断就是没反应,ep0中断不触发 HandleUSBEvent UfnMdd_Notify UFN_MSG_SETUP_PACKET: UFN_MSG_PREPROCESSED_SETUP_PACKET: ProcessRequest //整个USBFN代码里只有ProcessSetConfiguration函数发出了UFN_MSG_CONFIGURED的通知 //而pdd的driver里没有发现设置udr为USB_REQUEST_SET_CONFIGURATION的位置 //不清楚如何才能触发CableAttached //如果有通知了,应该走下面 USB_REQUEST_SET_CONFIGURATION ProcessSetConfiguration SendDeviceNotification(pContext->lpDeviceNotify, pContext->pvDeviceNotifyParameter, dwMsg, dwParam); DeviceNotifyStub CUsbFn::DeviceNotify UFN_MSG_CONFIGURED CableAttached OpenBulkIn OpenBulkOut OpenInterruptIn CUsbFuncPipe::OpenPipe m_pUfnFuncs->lpOpenPipe UfnMdd_OpenPipe  pPipe = FindPipe(pContext, dwEndpointAddress); dwRet = pPipe->Open(pContext->Speed, NULL); CPipeBase::Open UfnPdd_InitEndpoint
    12. 关于编译eboot生成两个NB0文件的问题 11/4914 嵌入式系统 2009-12-23
      先友情帮顶下。
    13. 自己解决了
    14. ATMega16驱动12864lcd-绘图-画点 8/3835 嵌入式系统 2009-12-02
      顶下; 没有仿真器的情况下,可以多实验下; 我都用MCU驱动2.4寸的TFT,关键就靠分析--怀疑--有目的的试验--验证--成功。
    15. VS2005编译的程序在目标板上不能运行 24/7704 嵌入式系统 2009-11-30
      用静态MFC库、拷贝到板子里看看
    16. 生儿子了,工作没了,散分 106/17284 嵌入式系统 2009-11-24
      恭喜~
    17. 版主这是什么问题25%的产品挂掉了 46/11896 stm32/stm8 2009-11-09
                                       一般这种情况都是I/O引脚的负载超标导致的。 请检查VDD的电流。
    18. 【求助】F169的12位DA不够用,怎么解决? 8/4538 微控制器 MCU 2009-10-05
      或者麻烦推荐一款13位的低功耗DA
    19. activesync驱动无法安装。 8/3161 嵌入式系统 2009-09-24
      我使用自己定制的操作系统无法安装驱动。 ??你想在那个系统中安装驱动?wince系统吗??
    20. U盘过滤驱动如何获取设备描述符? 4/4786 嵌入式系统 2009-09-16
      不好意思,刚才看了看UsbBuildGetDescriptorRequest,有个参数是设备描述符的指针,函数指定成功后,就得到设备描述符的指针了吧

最近访客

< 1/1 >

统计信息

已有87人来访过

  • 芯积分:--
  • 好友:--
  • 主题:12
  • 回复:63

留言

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


现在还没有留言