-
1、译码器,类似74HC154
2、串行驱动,类似74HC165
-
但是,有的变量在别的文件中也要用到,这样的话定义局部的可以吗?
-
呵呵,STM32不会这么慢,直接这样写即可:
IO_CS = 0;
// delay_ms(1); <-- 多余
SPI_Send();
// delay_ms(1); <-- 多余
IO_CS = 1;
你可以自己试一下。
-
现在调试出现了一个问题,本来是第一次读就该出来的数据,却在第二次读的时候才出来,例如:从某个SPI芯片读出来的数据,时序图已经贴过,读第一次应出来数据0x52,第二次0X86,第三次0X54,。。。依次把它们放进一个数组中。REGS[],出现这样一个怪现象,REGS[0] = 0X00,REGS[1]=0X52,REGS[2]=0X86,REGS[3]=0X54,。。。,我保证数组索引没有错。数据读时序就是25楼帖的图。想请教一下香大侠:这是什么原因呢?
我猜是下面的一个原因,不知道对不对?还望指教。
SPI-DR是一个16位的循环移位寄存器,我设置的是MSB先出,8位的数据格式。可能是这个寄存器先把读出来的8位数据移位到SPI-DR中的高八位,再读进下一个8位数据时,先前读出来的8位数据被移位到低8位,从而被读出来。在读第三个数据时,第二个数据被移位到低8位,依次类推。是不是这样的呢?谢谢。
-
很好的东西,最近好搞ST,标记一下
-
楼主选的是STM32的哪个型号呢
-
在你的OS中添加某个IOCONTROL,应用程序启动的时候调用这个iocontrol命令,如果系统返回你们预设的数据就执行,否则退出或出些警告之类的。
系统支持这个iocontrol的时候可以单纯的由OS来完成,也就是说所有的OS都使用同样的数据,其它机器只要烧录了这个OS就能使用。
另外一种是系统执行这个iocontrol的时候是从硬件上读取相应信息,这个信息可以写到机器的FLASH固定区域,或者是EEPROM,这样还能使每个机器的识别信息都不同,可以加一些算法加密等等,或者是使用专门的ID芯片。这样的话即使其它机器烧录了你们的OS也无法正常使用。
-
我想在此借宝地提个问题,往后,是不是大部分的裸奔,真的会嵌入式操作系统所代替呢????
-
微软的两个产品线,不冲突。而且MF已经开源啦
-
谢谢楼上几位
-
引用 11 楼 haiou_arm 的回复:
引用 10 楼 haiou_arm 的回复:
回楼上,明白了,谢谢!~这个作为优化方案,我后面做下。
我现在比较怀疑的是这个:
S3C6410有两个中断向量表VIC0、VIC1。共对应64个interrupt sources。
其中有五个分别是INT_EINT0、INT_EINT1、INT_EINT2、INT_EINT3、INT_EINT4。
以INT_EINT0、INT_EINT1……
我的理解是,两个中断同时来的时候,没有丢一个中断,而是先处理了一个中断,而再处理另外一个中断。
“我记得S3C2410的中断和ARM7核的单片机中断处理机制有个SRCPND的寄存器,两个中断同时都来了,SRCPND中两个中断位都会同时置位,按照优先级一个先处理,另一个等先处理的处理完了总会处理。对吧?总之不会丢”
你的这个理解是对的啊,正因为如此才不会把另外一个中断给丢了,
如果你的读卡数据的时间比较长的话,且多于两倍的ISR处理的时间的话,应该是可以一前一后读到两个卡的数据,不会丢失的。
-
引用 28 楼 xunjingzhpu 的回复:
引用 27 楼 mzb881 的回复:
引用 26 楼 lightsoure 的回复:
引用 25 楼 lightsoure 的回复:
不知道楼主用的是什么CPU 如果是三星的 USB OTG HOST不能支持2.0协议 只支持1。1全速。。。。。。。。。。。。。。。。。。
所以先看下 你的CPU支不支持HOST高速。。
另外挂在U盘 这个你要考虑USB口供电。。
用的三星……
谢谢提醒,在eeworld上,发现您已经解决了这个问题,可否指点一下!
-
Error: Ram start overlaps rom binary
应该是这个问题。需要重新配置一下内存分配。
-
Wince 6.0开发前先做一些准备的啊。先要做一个6.0模拟器,可以通过BP定制一个WINCE6.0 OS.在在目标设备中选择模拟器。网上找找,应该很容易的。
-
与客户联系,问题解决。
ucos运行前,先初始化FSMC总线
可以结贴。
-
上面通道为STM32F103V8输入的脉冲,下面为STM32F103V8在中断里控制的LED,每组脉冲中间间隔2秒,现在是每隔几组脉冲就会出现一组第一幅图的错误情况,好像是在接收下降沿的时候也产生的中断,这是怎么回事啊??(第一张为错误情况,第二张为放大,第三张为正常情况)
-
有参加过单片机培训的主吗?进来讲讲感受。我想节约点时间快速找到一个工作(我已有两年软件工作,现已辞职,打算从事电子,且从单片机进入)
-
如果不用这个脚,可以配置为推挽输出并输出为'0',外部把这个引脚接地。
-
if(TI)
{
TI=0;
}
while(!TI);
这两种方式我认为第二种要好些,即等到TI为1时才赋值TI=0; 此时程序一直在此等待发送,而第一种方式程序多次跳入再跳出中断函数,时间上可能会忙不过来,所以导致接受端乱码,当然,从原理上来讲,第一种也是正确的。不知道楼主指的乱码到了哪种程度。
-
我用来闪烁字符。
就用了1000ms... 所以长了点。