-
1)STM8和STM32是有BUG,ST的勘误手册给出了回避的方法,参考手册也有说明。
2)I2C死掉时,如果是从设备(如你的收音机芯片)出现问题,则复位MCU是不能恢复的。
3)为了不让你为此小事与人拼命而因此丧命,我就不告诉你是谁在做项目了,
-
南京万利电子属于ST的增值分销商一类,推STM32比较多,另外ST的代理商,如文晔、友尚、艾睿、安富利、富昌在南京都有分支机构。
-
因为Cortex用的就是Thume
-
1)你是否能肯定,你正确地设置了定时器的时钟频率为36MHz?
2)请问你是如何判断“定时设置后,出不来0.5us,最快也是2us”?
3)楼主位说"外部是25M",硬件上是如何产生这个频率的?
-
于是我改成如下
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
static uint32_t LSB = 0,MSB = 0;
/**
* @brief This function handles TIM3 global interrupt request.
* @param None
* @retval : None
*/
void TIM3_IRQHandler(void)
{
/* TIM2 CCR1 Register define the MSB of the captured value
TIM3 CCR1 Register define the LSB of the captured value */
if(TIM_GetITStatus(TIM3, TIM_IT_CC1) != RESET) // 检测到上升沿 计算低电平
{
TIM_ClearITPendingBit(TIM3, TIM_IT_CC1);
MSB = TIM_GetCounter(TIM2);
LSB = TIM_GetCapture1(TIM3);
TIM_SetCounter(TIM2,0);
TIM_SetCounter(TIM3,0);
printf("M:%d,L:%d\r\n",MSB,LSB);
}
if(TIM_GetITStatus(TIM3, TIM_IT_CC2) != RESET) // // 检测到下降沿 计算高电平
{
TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);
MSB = TIM_GetCounter(TIM2);
LSB = TIM_GetCapture1(TIM3);
TIM_SetCounter(TIM2,0);
TIM_SetCounter(TIM3,0);
printf("1M:%d,L:%d\r\n",MSB,LSB);
}
}
程序运行的结果是总是和理论值对应不上,16位的我有试过,所以对定时器计算方法和基本理解上应不会存在问题。
脉宽长一点的,计算还凑合,
短一点的,比如64us,怎么也对应不上,
虽然printf也会花些时间,用的115200,但这个值是基本固定的,可以算出来再减去,但是还是对应不上。
版主和各位兄弟看下,不胜感激涕零
-
要说USB,你去一个网站应该比这儿火,http://group.ednchina.com/93/
推荐一本书:圈圈教你玩USB 北航出版的
这本书基于51单片机,使用PDIUSBD12,讲的很基础很好,可以看一下。。。
-
顶一下
-
必须等擦除结束以后才能继续访问flash。
-
复杂的闻听
-
TCHAR是Unicode的,需要判断文件的前两个字节
-
波特率 不对?
-
一一对应,这个明显是不太现实的。。。。因为你的驱动不可能在运行时判断你的程序是哪一个。GETWINDOWTEXT在驱动层不可用啊。这个比较麻烦。
-
哦,多谢ST_RAM的回答,在此多谢了!
不过,我水平差,还不太理解USART功能,请指教。USART1相关管脚5个:USART1_CK、USART1_TX、USART1_RX、USART1_CTS、USART1_RTS,默认复用功能时此5脚分别为PA8、PA9、PA10、PA11、PA12。当激活USART1时,是不是这5个管脚就变成是USART1的功能管脚呢?难道只有TX、RX两脚才是串口功能脚,而另三脚不作为USART1的功能脚却能用作其它用途呢?STM3210XXX都有这种情况。
烦请ST_RAM兄解释一下,谢谢!
-
楼主,共同进步,我在看郭天翔的,,建议你也去找找他的
-
引用 17 楼 haiou_arm 的回复:
你没有将eboot.bib的内容贴完整,还是不知道你的64M到底是怎么细分的。
建议:
1、不要再申请,unsigned int * p这个指针,如果你的64M被分配完毕,它会指到哪去呢?
2、用display定义的缓冲区直接接收:memcpy(a, (unsigned int*)p, g_FlashInfo.dwBytesPerBlock); 直接拷贝给显存,将p直接换为IMAGE_FRA……
1,eboo.bib文件:
;* This software is the confidential and proprietary information of Samsung
;* Electronics, Inc("Confidential Information"). You Shall not disclose such
;* Confidential Information and shall use it only in accordance with the terms
;* of the license agreement you entered into Samsung.
;*
;******************************************************************************
MEMORY
; Name Start Size Type
; ------- -------- -------- ----
ARGS 80020800 00000800 RESERVED
RAM 80026000 00006000 RAM
STACK 8002c000 00004000 RESERVED
EBOOT 80038000 00040000 RAMIMAGE
BINFS 80080000 00021000 RESERVED
;LOGO 800A1000 00040000 RAMIMAGE
; Area used to cache nk.bin while programming flash
FLSCACHE 80200000 01400000 RESERVED
DISPLAY 80100000 00100000 RESERVED
CONFIG
COMPRESSION=OFF
PROFILE=OFF
KERNELFIXUPS=ON
; ROMOFFSET=25FC8000
SRE=ON
ROMSTART=80038000
ROMWIDTH=32
ROMSIZE=40000
MODULES
; Name Path Memory Type
; -------------- ---------------------------------------------- -----------
nk.exe $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.exe EBOOT
就这些了,
2,内存分配,昨天后来我也发现了 这么干 就能出图像
-
问楼主一个问题 你在建立gprs拨号连接的时候是采用什么拨号方式
是采用at%etcpip="",""的方式吗
还是ATD*99# 方式,这两种方式有什么不同呢 谢谢
-
想法很好,继续关注
-
引用 2 楼 veabol 的回复:
WINCE下访问串口和WINDOWS XP访问串口没什么区别。
你这就说得不正确,请回答的时候认真一点。windos可以重叠,wince可以?
两者是有区别的,别误导大家。
-
楼上大侠能不能说细点,我很菜的。25脚接的0.01uf的电容接地了,我是按照资料的标准接法接的。请指教~
-
同专业的同学 帮 顶