-
STM8L101F3P6 的模拟比较器的负端在内部接地了,因此如果正端输入任何正信号,比较结果是一样的。
请教一下如何才能利用这个模拟比较器呢?
谢谢!
-
最近从其他mcu叛变到ST的太多,供货肯定紧张。
其实供货的问题找版主有点难为他,呵呵。
俺只是聊聊,工程师肯定不管销售的事情,主要是打听打听点实际情况以及预计改善的日期等等。
-
软件浮点库在哪 MDK中有嘛
-
这下清楚了,谢谢
-
但是如果把stop放在EV8事件的最后一个发送字节,
即DR寄存器空,移位寄存器非空的时候,
不需要等待stop操作也没有关系。
除了这一点意外,
其他的都很好。
没感觉到怎么难用
-
哈哈,搞定了。
还是nand flash启动的配置问题。本来是配置对了,可惜有一颗mos管烧了。我只注意了启动后的电平状态,没注意到上电瞬间的电平变化,所以没注意到mos管的作用。
2440的启动代码可以从外部的nandflash上执行。为了能支持nboot,2440需要带有一个叫做steppingstone的内部sram缓冲区。在启动加载的时候,nandflash的前4k的内容(nboot部分)要被先load到steppingstone中去(此时steppingstone被映射为物理地址的0x0,复位后执行的第一条指令就是从这里取的),并且接着就是在steppingstone中去执行该启动代码。这部分代码(nboot)的作用是会将nandflash中的bootloader step2部分拷贝到sdram中去,并跳到sdram中去执行以加载内核(nk)。
nboot从nandflash被load到steppingstone中的过程为:在上点的时候,nandflash控制器通过几个引脚的状态(NCON-Adv flash;GPG13-Page size;GPG14-Address cycle;GPG15-Bus width)来得到nandflash的相关信息,之后nandflash控制器就会自动load nandflash中前4k的启动代码到steppingstone中去,并在其中执行了。
这部分是rightsoft牛人原创的,值得参考。
-
ding!
-
硬件解决的话,就是中间加锁存器74LS373,这个教材上应该有吧
如果想软件解决……你所说的控制LED和数码管都是P2口,那么连线是怎么连的?
-
引用 22 楼 wheatyilong 的回复:
是这样的:共有固态继电器、光电开关各4个。 理论上:
第一 感应到第1个光电开关,SSR1动作
第二 感应到第1个与第2个开关,SSR2动作 且SSR1断开不动作
(按照楼上大侠的方法,能满足第二点,不能满足第一点)
第三 感应到第2个光电开关,SSR1、SST2都动作
第四 感应到第2个与第3个开关,SSR3动作 且SSR1、2都不动作
把开关和继电器接的端口号列出来,用组合逻辑的方式做简单些。
-
非常感谢网友的解答,也非常感谢楼上同志们的教悔,在下领教了,谢谢。
-
fcntl 加锁应该可以把。
-
建立工程的时候设定的吧?
-
前2个问题做了实验如sunrain_hjb说的一样。
至于速度,我用了一下115200的波特率可以正常工作。
后来看了下波特率的定义,有个BAUD_USER,不知道这个设置到底波特率是何几?
或者说,这种情况下如unsway123说的,可以不用理会波特率这些东西,直接createfile,readfile,writefile直接通信?
-
帮顶下。
MARK.
-
看上去更像是一个考试的论述题,真正应用的很少会这么提问吧?或者高人都是如此开始切入,菜鸟真是无从回答啊。
-
给出例子。
CeSetThreadPriority(GetCurrentThread(), pMcuCtl->dwPriority256);
//在进入等待之前就获取了当前线程的优先级。并设置,我这里设置的很低100多后面了。。。
//Sleep(1); //等待信号量
while (1)
{ //第一阶段: 等待信号量出现
dwRet = WaitForMultipleObjects(2, rghEvents, FALSE, INFINITE);
if(pMcuCtl->bDeinit)
{
return 0;//如果检测到反初始化事件,退出等待信号量
}
//第二阶段: 判断实际信号量类型
switch(dwRet)
{
case WAIT_OBJECT_0:
RETAILMSG(1, (TEXT("mcu_DetectThread Wait deinit\r\n")));
//deinit event
//判断是deinit线程既退出
return 0;
break;
case WAIT_OBJECT_0+1:
//gpio interrupted event
//检测到GPIO中断进程事件
//建议第一次调试的时候请打开try进行预先测试
{
//RETAILMSG(1, (TEXT("mcu_DetectThread Wait gio\r\n")));
//__try
//{
//第三阶段: 读写的工作
OperationCS8953(READ, &sendOut[0], 2); //产生中断即进行读写MCU的工作
#if 1
RETAILMSG(1,(TEXT("the %d number SentOut Value for point variable is %x\r\n"),i,sendOut[i]));
//Skill:xxxxx
// sndPlaySound(_T("question.wav"),SND_FILENAME|SND_NODEFAULT);
#endif
//完成try的出错抛出处理
//}
//__except (GetExceptionCode() == STATUS_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
//{
// RETAILMSG(1, (TEXT("Emcu_DetectThread MCU_gio!!!!\r\n")));
// SetLastError(E_FAIL);
//}
//SetEvent(gReadKeyEvent[0]); //这里我们建议采用采集信号量来代替采集事件,
if (!ReleaseSemaphore(
gReadKeyEvent[0], // 要增加的信号量。
1, // 增加1.
NULL) ) // 不想返回前一次信号量。
{
//do noting.
}
}
break;
default:
//error
//出错处理
dwAction = 0x00;//MCU_STAT_NOCHANGE;
break;
}
复制代码
-
引用 3 楼 gooogleman 的回复:
引用 2 楼 flandy1982 的回复:
另外可以参考下谷歌男的博文:
http://blog.eeworld.net/gooogleman/archive/2009/09/11/4544046.aspx
噢噢噢,我的那篇文章点击量很高啊。哈哈哈 看来 6410 开发板也要写个才行。
强顶谷歌男;直接找他; 保证服务到家,呵呵
-
MTU是大于fLength ???开辟的存储空间是否足够?如果不够fLength 要分几次传输的
-
有好机会就好好]把握吧!
-
文件保存在哪?