smarsmar

    1. 惭愧啊,st网站上想找点东西太难了 19/6009 stm32/stm8 2011-02-28
                                       ST官网的确得惭愧一下了
    2.                                  淘宝上应该也有便宜的
    3.                                  现在上网的机器里没有这些资料,香版主看一下3.0.2版固件库的USART_Init与2.0.0版的,会发现设置波特率寄存器的代码不一样,多了一个条件,没有找到有关这个条件的说明,可能是用于USART4、5的, 另外,我的板子使用8MHZ晶振,与Keil的设置一致,PLL设置24MHZ,最早是软件仿真时偶然发现USART控件的波特率显示4800BPS,与我设置的9600BPS不符,检查过程序没有发现问题,接到硬件上试了一下,果然是4800BPS, 现在我的办法是使用调用USART_Init以后,再加一句USART1->B?? = 24000000/9600绕过了这个问题
    4. Wince 应用程序 不显示在任务栏中 7/3896 WindowsCE 2010-04-01
      好像不行,就算隐藏也会在任务栏中显示的,除非把任务栏隐藏
    5. 引用 10 楼 hzxiao1981 的回复: 又加了50分,总共100分。
      可惜没整过.
    6. 经过验证终于搞定一个重要部分:可以在WinCE6.0平台下连接FireBird数据库,有讨论意向者可以和下面的邮箱联系: E-mail:WolfMvP@foxmail.com 备注:想直接要源码者勿扰,谢谢合作!^_^…
    7. 去问你买开发板的技术支持吧!也许他能告诉你。
    8. wince下连接数据库 12/6426 WindowsCE 2010-03-08
      引用 2 楼 yyke0031 的回复: 好像还是不行哎 - -
      一样的提示信息吗,把代码全部贴出来,把错误信息也帖上。
    9. 求Silverlight for Embedded应用例子 8/3394 嵌入式系统 2010-03-08
      呵呵,找了一下,还挺多的,谢谢各位了
    10. 又遇到个奇怪的读注册表问题,郁闷。 23/7585 嵌入式系统 2010-01-12
      引用 15 楼 xumercury 的回复: 这个问题解决了吗?
      我晕,还猫王。
    11.     以前做个这个事情,其实这是个没任何意思的工作。如果对方设备部复杂,不如自己做。     你可以直接和对方联系,给一定的费用,让对方开发通讯协议给你二次开发。     如果是我做的设备,要加密的话,你可能要付出非常大的代价才可以破译,这个代价远大于自己去开发。
    12.                                  我当初换3.1.2版本库的时候也碰到过这个问题,折腾半天添加一个头文件就可以了,但我忘了是在哪个文件里添加头文件了,SORRY,反正是一个很简单的错误,但必须要求函数声明原型,逃避这个错误是不行的
    13. 无法调用 FMD_OEMIoControl 12/4139 嵌入式系统 2009-12-11
      引用 7 楼 guopeixin 的回复: 引用 2 楼 wuzukui 的回复: 谢谢楼上的回答, 注册表设置的时候 是DSK1, 而且 usb 在识别 nand(DSK1) 与 sd(DSK4) 的时候 设置的是? : DSK1, nand 在pc上能够识别;? 我可以很肯定的说 nand 的 device name 确实是 DSK1 给你个必杀技,呵呵 如果你的device name是正确的话,你调用deviceiocontrol()时传递一个系统不存在的control code,如0,看看程序是否能够走到FMD_OEMIoControl, 如果没有走到,device name一定有问题
      呵呵 , 必杀, 我试试
    14. 你屏的分辨率是多少? 视频播放可能有几个瓶颈:1.解码速度;2.显示刷新速度。这2个都可能造成你说的情况
    15.                                  jlink 支持加密不??
    16. 宏定义MARO的应用问题 3/2260 嵌入式系统 2009-11-09
      是把宏的第一个参数$HandlerLabel 转变为一个标号,然后让程序跳转到第二个参数 $HandleLabel (第二个参数应该为一个地址)对应的值的地址去。 IRQ_SVC_HANDLER HANDLER IrqSvcVector 等价于 IRQ_SVC_HANDLER sub sp,sp,#4    stmfd sp!,{r0}       ldr    r0,=IrqSvcVector ldr    r0,[r0]         str    r0,[sp,#4]       ldmfd  sp!,{r0,pc}   
    17. ST7FLASH编程遇到问题,望高手帮忙 8/3729 stm32/stm8 2009-10-26
                                       希望高手给点指点哈,小弟这里先谢谢了
    18. wince中C#读取GPS数据的问题 17/6185 WindowsCE 2009-09-02
      因为都是用的[url=http://www.wangchao.net.cn/bbsdetail_73074.html][/url]里面的代码,所以没多贴 呵呵 //==============类=============================== class Cgps     {         public string PortNum;         public int BaudRate;         public byte ByteSize;         public byte Parity; // 0-4=no,odd,even,mark,space         public byte StopBits; // 0,1,2 = 1, 1.5, 2         public int ReadTimeout;                //comm port win32 file handle         private int hComm = -1;         public bool Opened = false;         //win32 api constants         private const uint GENERIC_READ = 0x80000000;         private const uint GENERIC_WRITE = 0x40000000;         private const int OPEN_EXISTING = 3;           private const int INVALID_HANDLE_VALUE = -1;       [StructLayout(LayoutKind.Sequential)]        public struct DCB       {            //taken from c struct in platform sdk            public int DCBlength;           // sizeof(DCB)            public int BaudRate;            // 指定当前波特率 current baud rate            // these are the c struct bit fields, bit twiddle flag to set            public int fBinary;          // 指定是否允许二进制模式,在windows95中必须主TRUE binary mode, no EOF check            public int fParity;          // 指定是否允许奇偶校验 enable parity checking            public int fOutxCtsFlow;      // 指定CTS是否用于检测发送控制,当为TRUE是CTS为OFF,发送将被挂起。 CTS output flow control            public int fOutxDsrFlow;      // 指定CTS是否用于检测发送控制 DSR output flow control            public int fDtrControl;       // DTR_CONTROL_DISABLE值将DTR置为OFF, DTR_CONTROL_ENABLE值将DTR置为ON, DTR_CONTROL_HANDSHAKE允许DTR"握手" DTR flow control type            public int fDsrSensitivity;   // 当该值为TRUE时DSR为OFF时接收的字节被忽略 DSR sensitivity            public int fTXContinueOnXoff; // 指定当接收缓冲区已满,并且驱动程序已经发送出XoffChar字符时发送是否停止。TRUE时,在接收缓冲区接收到缓冲区已满的字节XoffLim且驱动程序已经发送出XoffChar字符中止接收字节之后,发送继续进行。 FALSE时,在接收缓冲区接收到代表缓冲区已空的字节XonChar且驱动程序已经发送出恢复发送的XonChar之后,发送继续进行。XOFF continues Tx            public int fOutX;          // TRUE时,接收到XoffChar之后便停止发送接收到XonChar之后将重新开始 XON/XOFF out flow control            public int fInX;           // TRUE时,接收缓冲区接收到代表缓冲区满的XoffLim之后,XoffChar发送出去接收缓冲区接收到代表缓冲区空的XonLim之后,XonChar发送出去 XON/XOFF in flow control            public int fErrorChar;     // 该值为TRUE且fParity为TRUE时,用ErrorChar 成员指定的字符代替奇偶校验错误的接收字符 enable error replacement            public int fNull;          // eTRUE时,接收时去掉空(0值)字节 enable null stripping            public int fRtsControl;     // RTS flow control            public int fAbortOnError;   // TRUE时,有错误发生时中止读和写操作              public int fDummy2;        // 未使用 reserved              public uint flags;            public ushort wReserved;          // 未使用,必须为0 not currently used            public ushort XonLim;             // 指定在XON字符发送这前接收缓冲区中可允许的最小字节数 transmit XON threshold            public ushort XoffLim;            // 指定在XOFF字符发送这前接收缓冲区中可允许的最小字节数 transmit XOFF threshold            public byte ByteSize;           // 指定端口当前使用的数据位 number of bits/byte, 4-8            public byte Parity;             // 指定端口当前使用的奇偶校验方法,可能为:EVENPARITY,MARKPARITY,NOPARITY,ODDPARITY  0-4=no,odd,even,mark,space            public byte StopBits;           // 指定端口当前使用的停止位数,可能为:ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITS  0,1,2 = 1, 1.5, 2            public char XonChar;            // 指定用于发送和接收字符XON的值 Tx and Rx XON character            public char XoffChar;           // 指定用于发送和接收字符XOFF值 Tx and Rx XOFF character            public char ErrorChar;          // 本字符用来代替接收到的奇偶校验发生错误时的值 error replacement character            public char EofChar;            // 当没有使用二进制模式时,本字符可用来指示数据的结束 end of input character            public char EvtChar;            // 当接收到此字符时,会产生一个事件 received event character            public ushort wReserved1;         // 未使用 reserved; do not use       }       [StructLayout(LayoutKind.Sequential)]        private struct COMMTIMEOUTS       {              public int ReadIntervalTimeout;            public int ReadTotalTimeoutMultiplier;            public int ReadTotalTimeoutConstant;            public int WriteTotalTimeoutMultiplier;            public int WriteTotalTimeoutConstant;       }         [StructLayout(LayoutKind.Sequential)]        private struct OVERLAPPED       {            public int  Internal;            public int  InternalHigh;            public int  Offset;            public int  OffsetHigh;            public int hEvent;       }             [DllImport("coredll.dll")]       private static extern int CreateFile(        string lpFileName,                         // 要打开的串口名称        uint dwDesiredAccess,                      // 指定串口的访问方式,一般设置为可读可写方式        int dwShareMode,                          // 指定串口的共享模式,串口不能共享,所以设置为0        int lpSecurityAttributes,                 // 设置串口的安全属性,WIN9X下不支持,应设为NULL        int dwCreationDisposition,                // 对于串口通信,创建方式只能为OPEN_EXISTING        int dwFlagsAndAttributes,                 // 指定串口属性与标志,设置为FILE_FLAG_OVERLAPPED(重叠I/O操作),指定串口以异步方式通信        int hTemplateFile                        // 对于串口通信必须设置为NULL        );       [DllImport("coredll.dll")]       private static extern bool GetCommState(        int hFile,  //通信设备句柄        ref DCB lpDCB    // 设备控制块DCB        );       [DllImport("coredll.dll")]       private static extern bool BuildCommDCB(        string lpDef,  // 设备控制字符串        ref DCB lpDCB     // 设备控制块        );       [DllImport("coredll.dll")]       private static extern bool SetCommState(        int hFile,  // 通信设备句柄        ref DCB lpDCB    // 设备控制块        );       [DllImport("coredll.dll")]       private static extern bool GetCommTimeouts(        int hFile,                  // 通信设备句柄 handle to comm device        ref COMMTIMEOUTS lpCommTimeouts  // 超时时间 time-out values        );       [DllImport("coredll.dll")]       private static extern bool SetCommTimeouts(        int hFile,                  // 通信设备句柄 handle to comm device        ref COMMTIMEOUTS lpCommTimeouts  // 超时时间 time-out values        );       [DllImport("coredll.dll")]       private static extern bool ReadFile(        int hFile,                // 通信设备句柄 handle to file        byte[] lpBuffer,             // 数据缓冲区 data buffer        int nNumberOfBytesToRead,  // 多少字节等待读取 number of bytes to read        ref int lpNumberOfBytesRead, // 读取多少字节 number of bytes read        ref OVERLAPPED lpOverlapped    // 溢出缓冲区 overlapped buffer        );       [DllImport("coredll.dll")]       private static extern bool WriteFile(        int hFile,                    // 通信设备句柄 handle to file        byte[] lpBuffer,                // 数据缓冲区 data buffer        int nNumberOfBytesToWrite,     // 多少字节等待写入 number of bytes to write        ref int lpNumberOfBytesWritten,  // 已经写入多少字节 number of bytes written        ref OVERLAPPED lpOverlapped        // 溢出缓冲区 overlapped buffer        );       [DllImport("coredll.dll")]       private static extern bool CloseHandle(        int hObject   // handle to object        );       [DllImport("coredll.dll")]       private static extern uint GetLastError();       public void Open()       {            DCB dcbCommPort = new DCB();            COMMTIMEOUTS ctoCommPort = new COMMTIMEOUTS();            // 打开串口 OPEN THE COMM PORT.            hComm = CreateFile(PortNum, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);            MessageBox.Show(PortNum.ToString());            //// 如果串口没有打开,就打开 IF THE PORT CANNOT BE OPENED, BAIL OUT.            if (hComm == INVALID_HANDLE_VALUE)            {                System.UInt32 err = GetLastError();                MessageBox.Show(err.ToString());                //throw (new ApplicationException("非法操作,不能打开串口!"));            }                   // 设置通信超时时间 SET THE COMM TIMEOUTS.            GetCommTimeouts(hComm,ref ctoCommPort);            ctoCommPort.ReadTotalTimeoutConstant = ReadTimeout;            ctoCommPort.ReadTotalTimeoutMultiplier = 0;            ctoCommPort.WriteTotalTimeoutMultiplier = 0;            ctoCommPort.WriteTotalTimeoutConstant = 0;              SetCommTimeouts(hComm,ref ctoCommPort);                      // 设置串口 SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS.            GetCommState(hComm, ref dcbCommPort);            dcbCommPort.BaudRate=BaudRate;            dcbCommPort.flags=0;            //dcb.fBinary=1;            dcbCommPort.flags|=1;            if (Parity>0)            {                 //dcb.fParity=1                 dcbCommPort.flags|=2;            }            dcbCommPort.Parity=Parity;            dcbCommPort.ByteSize=ByteSize;            dcbCommPort.StopBits=StopBits;            if (!SetCommState(hComm, ref dcbCommPort))            {             throw(new ApplicationException("aa非法操作,不能打开串口!"));            }            Opened = true;       } //======================调用部分===================================      private void Form1_Load(object sender, EventArgs e)      {         OpenGps("COM7");      }      private void OpenGps(string ComPoint)      {             cgps.PortNum=ComPoint;             //cgps.BaudRate = uintbR;             cgps.BaudRate = 9600;             cgps.ByteSize=8;             cgps.Parity=0;             cgps.StopBits=1;             cgps.ReadTimeout=1000;             try             {                 if (cgps.Opened)                 {                     cgps.Close();                     cgps.Open();                     gpsRead();                 }                 else                 {                     cgps.Open();//打开串口                     gpsRead();                 }             }             catch(Exception e)             {                 MessageBox.Show(e.Message);             } } 复制代码
    19.                                  是啊,越是经典的东西,越是被人忽略。正因为它适合于很多人,所以才经典。
    20. 请教香版关于频率跟踪的问题 8/4355 stm32/stm8 2009-07-17
                                        

最近访客

< 1/1 >

统计信息

已有91人来访过

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

留言

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


现在还没有留言