-
哥用的是STM模拟I2C没发现问题,那个专用I2C接口没用过
-
#define ENDP0_RXADDR (0x18)
#define ENDP0_TXADDR (0x58)
是够可以这样理解: ENDP0_RXADDR 本身的地址 由 USB_BTABLE 的偏移量决定 ;这个地址上存放的数据0x18 ,也就是端点0 用来接收数据的缓冲区的地址,即:从0x18这个地址开始的一段地址空间上,存放的是端点 0 接收到的数据 ;
-
你的程序有问题,下面的程序是我自己写的,给你作参考:
/*
**-----------------------------------------------------------------------------
**
** Abstract:
** TIM1初始化, 更新时间为40uS(PWM输出周期/25MHz)
**
** Parameters:
** None
**
** Returns:
** None
**
**-----------------------------------------------------------------------------
*/
void TIM1_Init(void)
{
CLK_PCKENR1 |= 0x80; //开启定时器1外设时钟
TIM1_EGR |= 0x01; //重新初始化TIM1
TIM1_ARRH = (UCHAR)(TIM1_Period >> 8); //设定重装载值
TIM1_ARRL = (UCHAR)(TIM1_Period);
TIM1_PSCRH = 0x00; //设定预分频为1 = 16M
TIM1_PSCRL = 0x00;
TIM1_CR1 = 0x00; //边沿对齐,向上计数
TIM1_RCR = 0x00;
}
/*
**-----------------------------------------------------------------------------
**
** Abstract:
** TIM1_CC2 PWM输出初始化
**
** Parameters:
** None
**
** Returns:
** None
**
**-----------------------------------------------------------------------------
*/
void TIM1_OC2Init(void)
{
TIM1_CCER1 = 0x30; //CC2E开启,高电平有效
TIM1_CCMR2 = 0x70; //PWM模式1,CC1配置入输出
TIM1_OISR &= ~0x03;
TIM1_CCR2H = (UCHAR)(TIM1_Pulse >> 8);
TIM1_CCR2L = (UCHAR)(TIM1_Pulse);
}
/*
**-----------------------------------------------------------------------------
**
** Abstract:
** TIM1使能或禁止
**
** Parameters:
** None
**
** Returns:
** None
**
**-----------------------------------------------------------------------------
*/
void TIM1_Cmd(FunctionalState NewState)
{
if(NewState != DISABLE)
{
TIM1_CR1 |= 0x01; //使能计数器
}
else
{
TIM1_CR1 &= ~0x01; //禁止计数器
}
}
/*
**-----------------------------------------------------------------------------
**
** Abstract:
** TIM1_CC2 PWM输出控制
**
** Parameters:
** None
**
** Returns:
** None
**
**-----------------------------------------------------------------------------
*/
void TIM1_CtrlPWMOutPuts(FunctionalState NewState)
{
if(NewState != DISABLE)
{
TIM1_BKR |= 0x80;
}
else
{
TIM1_BKR &= ~0x80;
}
}
-
多谢vigia大侠指引!我试试。
-
你这个链接一点就进"我"的BLOG了
注意是"我"的
-
能不能发个跳帽连接的实物图过来啊,非常感谢啊!!!
-
唉,现在的大学教育啊,不会做难道搜索都不会了?
用“LM317 扩展”在Google上搜索,前10个就有,这里不好贴图,就直接看别人的页面吧
http://www.weixiu8.com/article/view.asp?id=563
-
Reallyu的建议似乎可行,我先测试一下。
-
这样的话可以用中断定时吧
-
示波器看了波形正常,怎么可能收发都不正常?肯定是哪里搞错了。
-
[url=http://www.cnblogs.com/we-hjb/archive/2009/02/21/1395577.html][/url]
看看这里吧,以前调试ARM+GCC时也发现用sprintf+float会有问题。
-
只是我写的,可以重入,当然就可以返回USR。但是我不明白什么叫“可以双倍SVC模式下的寄存器数”
IMPORT C_IsrSWI
IsrSWI
STMFD sp!,{r0-r3,r12,lr};//保存寄存器,防止重入SWI时被破坏
MOV r1,sp ;//把指针存放在R1,并作参数传递
MRS r0,spsr
STMFD sp!,{r0} ;//保存spsr
TST r0,#Tbit
LDRNEH r0,[lr,#-2]
BICNE r0,r0,#0xFF00
LDREQ r0,[lr,#-4]
BICEQ r0,r0,#0xFF000000
BL C_IsrSWI
LDMFD sp!,{r0}
MSR spsr_cf,r0
LDMFD sp!,{r0-r3,r12,pc}^
-
“
2007-01-08 19:47:32
2007-01-09 10:21:35
”
啊!真郁闷!都老陈贴了,啥时候能结呀?
-
MARK,学习下。
-
本人也正在学习ARM,应该C语言要比较好吧,汇编也要懂
-
试下看看,应该可以,用sqlserver还可以直接同步呢
-
谢谢!
-
是别名
-
引用 3 楼 gooogleman 的回复:
引用 2 楼 yzbsd 的回复:
9650不是号称130万吗
9652才是吧?
哦,30W的应该是OV7620
那到底OV9650是多少W像素?反正俺用它来拍照,感觉不到100W的水平...
-
多钱?