-
11楼所言极是,如果用串2,同样的程序,结果就没有这个现象了,多半是线路的问题哦,所以要等新板子回来再做对比实验看看
-
/*************************************************************************************************
* @fun: void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState)
* @brief Enables or disables the USART's one bit sampling methode.
* 启用或禁用USART位采样方法
* @param USARTx: Select the USART or the UART peripheral.
* 选择的USART或UART的外设。
* This parameter can be one of the following values:
* 此参数可为下列值之一:
* USART1, USART2, USART3, UART4 or UART5.
* @param NewState: new state of the USART one bit sampling methode.
* This parameter can be: ENABLE or DISABLE.
* USART位采样方法的新状态,此参数可以是:启用或禁用
* @retval None
************************************************************************************************/
void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState)
{
/* Check the parameters
检查参数 */
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_FUNCTIONAL_STATE(NewState));
if (NewState != DISABLE)
{
/* Enable the one bit method by setting the ONEBITE bit in the CR3 register
置位CR3寄存器 ONEBITE 位启用位采样方法 */
USARTx->CR3 |= CR3_ONEBITE_Set;
}
else
{
/* Disable tthe one bit method by clearing the ONEBITE bit in the CR3 register
复位CR3寄存器 ONEBITE 位禁用位采样方法 */
USARTx->CR3 &= CR3_ONEBITE_Reset;
}
}
-
引用 51 楼 sunrain_hjb 的回复:
硬件的问题很难通过软件来解决,先确认硬件到底有没有问题吧。
硬件是绝对有问题的了,因为一模一样的驱动,放到FL2440上不会出现,在我的PDA却会,的确是我们硬件没有加电容和电感。现在产品已经成型了,卖了半年了,所以不可能改的。呵呵。所以相当的纠结,我再继续搞。降低一些跳点频率也好。
-
定时中断或者查询中断
-
哦,模拟器和虚拟机不是一回事?
-
yes,thx a lot
-
// Memory control
#define rBWSCON (*(volatile unsigned *)0x48000000) //Bus width & wait status
#define rBANKCON0 (*(volatile unsigned *)0x48000004) //Boot ROM control
#define rBANKCON1 (*(volatile unsigned *)0x48000008) //BANK1 control
#define rBANKCON2 (*(volatile unsigned *)0x4800000c) //BANK2 cControl
#define rBANKCON3 (*(volatile unsigned *)0x48000010) //BANK3 control
#define rBANKCON4 (*(volatile unsigned *)0x48000014) //BANK4 control
#define rBANKCON5 (*(volatile unsigned *)0x48000018) //BANK5 control
#define rBANKCON6 (*(volatile unsigned *)0x4800001c) //BANK6 control
#define rBANKCON7 (*(volatile unsigned *)0x48000020) //BANK7 control
#define rREFRESH (*(volatile unsigned *)0x48000024) //DRAM/SDRAM refresh
#define rBANKSIZE (*(volatile unsigned *)0x48000028) //Flexible Bank Size
#define rMRSRB6 (*(volatile unsigned *)0x4800002c) //Mode register set for SDRAM
#define rMRSRB7 (*(volatile unsigned *)0x48000030) //Mode register set for SDRAM
// USB Host
// Control and Status group
#define rHcRevision (*(volatile unsigned *)0x49000000)
#define rHcControl (*(volatile unsigned *)0x49000004)
#define rHcCommonStatus (*(volatile unsigned *)0x49000008)
#define rHcInterruptStatus (*(volatile unsigned *)0x4900000c)
#define rHcInterruptEnable (*(volatile unsigned *)0x49000010)
#define rHcInterruptDisable (*(volatile unsigned *)0x49000014)
// Memory pointer group
#define rHcHCCA (*(volatile unsigned *)0x49000018)
#define rHcPeriodCuttentED (*(volatile unsigned *)0x4900001c)
#define rHcControlHeadED (*(volatile unsigned *)0x49000020)
#define rHcControlCurrentED (*(volatile unsigned *)0x49000024)
#define rHcBulkHeadED (*(volatile unsigned *)0x49000028)
#define rHcBulkCurrentED (*(volatile unsigned *)0x4900002c)
#define rHcDoneHead (*(volatile unsigned *)0x49000030)
// Frame counter group
#define rHcRmInterval (*(volatile unsigned *)0x49000034)
#define rHcFmRemaining (*(volatile unsigned *)0x49000038)
#define rHcFmNumber (*(volatile unsigned *)0x4900003c)
#define rHcPeriodicStart (*(volatile unsigned *)0x49000040)
#define rHcLSThreshold (*(volatile unsigned *)0x49000044)
// Root hub group
#define rHcRhDescriptorA (*(volatile unsigned *)0x49000048)
#define rHcRhDescriptorB (*(volatile unsigned *)0x4900004c)
#define rHcRhStatus (*(volatile unsigned *)0x49000050)
#define rHcRhPortStatus1 (*(volatile unsigned *)0x49000054)
#define rHcRhPortStatus2 (*(volatile unsigned *)0x49000058)
// INTERRUPT
#define rSRCPND (*(volatile unsigned *)0x4a000000) //Interrupt request status
#define rINTMOD (*(volatile unsigned *)0x4a000004) //Interrupt mode control
#define rINTMSK (*(volatile unsigned *)0x4a000008) //Interrupt mask control
#define rPRIORITY (*(volatile unsigned *)0x4a00000c) //IRQ priority control
#define rINTPND (*(volatile unsigned *)0x4a000010) //Interrupt request status
#define rINTOFFSET (*(volatile unsigned *)0x4a000014) //Interruot request source offset
#define rSUBSRCPND (*(volatile unsigned *)0x4a000018) //Sub source pending
#define rINTSUBMSK (*(volatile unsigned *)0x4a00001c) //Interrupt sub mask
-
楼主知道是什么格式的吗?
知道格式了,在网上搜一下应该就能搞定咯。
-
代码是没有滴,不如直接考虑U口。
-
用一个信号做基准,比较另外两个。最好用汇编。
-
这段话是从哪看到的?怎么看起来这么别扭。
EINT本身就是与通常IO口同样的管脚,只是要通过设置相应寄存器来选择让这个脚实现什么样的功能。
比如:GPMCON的[3:0]设置成
0000则用来普通IO口的输入功能
0001用来普通IO口的输出功能
0011用来做Ext. Interrupt[23]
-
宣传的东西陆续会出来,你说量产下半年很难哦!
-
我看了S3C2440的DATASHEET,MISCCR这个寄存器的[3]SEL_USBPAD:USB1 Host/Device select register. 0=Use USB1 as Device,1=USE USB1 as Host.现在关键是怎么改这个寄存器的值。
Linux的USB drive中可以改的(具体我没改,网络上有关于S3C2410的改法)。但是WinCE下没人说。
WiCE USB Driver下有APP,FUNCTION,HCD三个文件夹。HCD应该就是Host Control Driver,里面没找到MISCCR;APP下也没找到MISCCR,在FUNCTION下找到了,FUNCTION也就是Client.我试着改改,好像还是不怎么行?是不是在这改呢?
原始代码:
// MISCCR: USBD Pads, Normal mode
//
pHWHead->pIrqCtrlAddr->rMISCCR &= ~((3 rMISCCR &= ~((3 rMISCCR |= (1
-
引用 2 楼 91program 的回复:
这个和SDK的版本(Debug or Release)没有关系的.
可能是你应用工程的设置有问题.
同意
-
关注
-
另外我添加了HIVE之后出错的地方又换了~
4294767416 PID:23fc8c1a TID:23fc8bea 0x83fc8a3c: FS: Creating signal event SYSTEM/DevMgrApiSetReady
4294767417 PID:23fc8c1a TID:23fc8bea 0x83fc8a3c: FS: Creating signal event SYSTEM/PowerManagerReady
之后再也没响应
-
线性地址和cache有直接关联?线性地址就是 0~4G-1的范围取数吧。具体我也只看见全局数组变量的首地址要高三位设置为101,从而变成程序总通常使用的地址指针。
-
引用 18 楼 ricky_hu 的回复:
如果lz的数据处理速度慢,而中断上来快的话,这个问题基本没得解。肯定会丢掉东西,要么丢掉数据,要么丢掉中断,相信这2种情况都不是lz想要的。所以lz还是要想办法尽量提高数据处理速度。
另外,lz可以考虑使用循环缓冲buffer的方式来做。数据一来就把它存到缓冲区,然后马上取走去处理,这样的话即使你处理稍微慢一点,缓冲区里面的是数据总是不会丢掉的。就想往水杯里面倒水,但是这个杯子底部又有一个洞漏水一样。
谢谢建议。非常感谢!
-
可能你的BSP里边没有吧
-
define in glaux.h
/*
** Prototypes
*/
void APIENTRY auxInitDisplayMode(GLenum);
void APIENTRY auxInitPosition(int, int, int, int);
/* GLenum APIENTRY auxInitWindow(LPCTSTR); */
#ifdef UNICODE
#define auxInitWindow auxInitWindowW
#else
#define auxInitWindow auxInitWindowA
#endif
GLenum APIENTRY auxInitWindowA(LPCSTR);
GLenum APIENTRY auxInitWindowW(LPCWSTR);
void APIENTRY auxCloseWindow(void);
void APIENTRY auxQuit(void);
void APIENTRY auxSwapBuffers(void);
typedef void (CALLBACK* AUXMAINPROC)(void);
void APIENTRY auxMainLoop(AUXMAINPROC);
typedef void (CALLBACK* AUXEXPOSEPROC)(int, int);
void APIENTRY auxExposeFunc(AUXEXPOSEPROC);
typedef void (CALLBACK* AUXRESHAPEPROC)(GLsizei, GLsizei);
void APIENTRY auxReshapeFunc(AUXRESHAPEPROC);
typedef void (CALLBACK* AUXIDLEPROC)(void);
void APIENTRY auxIdleFunc(AUXIDLEPROC);
typedef void (CALLBACK* AUXKEYPROC)(void);
void APIENTRY auxKeyFunc(int, AUXKEYPROC);
typedef void (CALLBACK* AUXMOUSEPROC)(AUX_EVENTREC *);
void APIENTRY auxMouseFunc(int, int, AUXMOUSEPROC);
int APIENTRY auxGetColorMapSize(void);
void APIENTRY auxGetMouseLoc(int *, int *);
void APIENTRY auxSetOneColor(int, float, float, float);
void APIENTRY auxSetFogRamp(int, int);
void APIENTRY auxSetGreyRamp(void);
void APIENTRY auxSetRGBMap(int, float *);
/* AUX_RGBImageRec * APIENTRY auxRGBImageLoad(LPCTSTR); */
#ifdef UNICODE
#define auxRGBImageLoad auxRGBImageLoadW
#else
#define auxRGBImageLoad auxRGBImageLoadA
#endif
AUX_RGBImageRec * APIENTRY auxRGBImageLoadA(LPCSTR);
AUX_RGBImageRec * APIENTRY auxRGBImageLoadW(LPCWSTR);
#ifdef UNICODE
#define auxDIBImageLoad auxDIBImageLoadW
#else
#define auxDIBImageLoad auxDIBImageLoadA
#endif
AUX_RGBImageRec * APIENTRY auxDIBImageLoadA(LPCSTR);
AUX_RGBImageRec * APIENTRY auxDIBImageLoadW(LPCWSTR);
void APIENTRY auxCreateFont(void);
/* void APIENTRY auxDrawStr(LPCTSTR); */
#ifdef UNICODE
#define auxDrawStr auxDrawStrW
#else
#define auxDrawStr auxDrawStrA
#endif
void APIENTRY auxDrawStrA(LPCSTR);
void APIENTRY auxDrawStrW(LPCWSTR);
void APIENTRY auxWireSphere(GLdouble);
void APIENTRY auxSolidSphere(GLdouble);
void APIENTRY auxWireCube(GLdouble);
void APIENTRY auxSolidCube(GLdouble);
void APIENTRY auxWireBox(GLdouble, GLdouble, GLdouble);
void APIENTRY auxSolidBox(GLdouble, GLdouble, GLdouble);
void APIENTRY auxWireTorus(GLdouble, GLdouble);
void APIENTRY auxSolidTorus(GLdouble, GLdouble);
void APIENTRY auxWireCylinder(GLdouble, GLdouble);
void APIENTRY auxSolidCylinder(GLdouble, GLdouble);
void APIENTRY auxWireIcosahedron(GLdouble);
void APIENTRY auxSolidIcosahedron(GLdouble);
void APIENTRY auxWireOctahedron(GLdouble);
void APIENTRY auxSolidOctahedron(GLdouble);
void APIENTRY auxWireTetrahedron(GLdouble);
void APIENTRY auxSolidTetrahedron(GLdouble);
void APIENTRY auxWireDodecahedron(GLdouble);
void APIENTRY auxSolidDodecahedron(GLdouble);
void APIENTRY auxWireCone(GLdouble, GLdouble);
void APIENTRY auxSolidCone(GLdouble, GLdouble);
void APIENTRY auxWireTeapot(GLdouble);
void APIENTRY auxSolidTeapot(GLdouble);
/*
** Window specific functions
** hwnd, hdc, and hglrc valid after auxInitWindow()
*/
HWND APIENTRY auxGetHWND(void);
HDC APIENTRY auxGetHDC(void);
HGLRC APIENTRY auxGetHGLRC(void);
/*
** Viewperf support functions and constants
*/
/* Display Mode Selection Criteria */
enum {
AUX_USE_ID = 1,
AUX_EXACT_MATCH,
AUX_MINIMUM_CRITERIA
};
void APIENTRY auxInitDisplayModePolicy(GLenum);
GLenum APIENTRY auxInitDisplayModeID(GLint);
GLenum APIENTRY auxGetDisplayModePolicy(void);
GLint APIENTRY auxGetDisplayModeID(void);
GLenum APIENTRY auxGetDisplayMode(void);
复制代码