-
好,我试试
-
这个后来怎么处理呢?
-
还有一个,就是模拟量输入电压小于VDDA; 如果有Vref;我就可以调准读的最大范围
那为什么高端的芯片要增加这个引脚呢?难道是因为我们这些人总是争论这个问题,所以就加进去算了?
高端的芯片增加这个引脚的目的是可以使应用更灵活,可以解决9楼提出的问题。
高端芯片增加这个引脚的目的不是要解决电源波动的问题,如果你滤波做不好,即使有独立的VREF引脚,也不会得到高精度的测量。
-
我的也经常坏,都不想用了。。。。。。。。
-
坏了?
-
友情帮顶一下~~~!!!
-
我在6410驱动软件里打印了发送缓冲,在pc端用BudHound看了通讯数据。发送缓冲不是0,接收到pc机上就是0了,而且先启动发送线程的话,今天是接收的前2个包是0
-
引用 26 楼 xqhrs232 的回复:
觉得要会使用示波器,万用表,烙铁.
觉得串口驱动应该为经典的驱动值得研究
一个工程师最好把所有的相关东西都掌握------结构/机械,电气/电子,软件/硬件,UI/构架,达到做一个项目不只要他一个人就可以全部搞定.产品结构自己用PRO/E搞,PCB自己用PCADS画,芯片/板子自己焊,软件自己写,驱动自己调.
OS方面应该是消息机制,常用API,常见算法,核心对象,线程/进程通信与互斥.
说到硬件我就感叹了。一直很想学,但没人带,我估计也很难学?特别是PCB。
有没好书推荐一下。
-
应该不用自己加驱动。在kernel里面有的。WINCE支持。
如果你用samsung的BSP,可以先看看common/Timer/watchdog.c,里面是告诉OS kernel进行refresh watchdog的。主要有以下代码:
pfnOEMRefreshWatchDog = RefreshWatchdogTimer;//refresh watchdog function.
dwOEMWatchDogPeriod = WD_REFRESH_PERIOD;
另外reboot的问题,系统也是有的。
你可以看一下。common/IOCTL/REBOOT.C,可以在这里面添加reboot 代码。自己添加一些改动即可。
-
发呆
-
听楼主的意思,感觉就是显示问题
-
谢谢weabol,还望你多多指教我
这个2410init.S我是在网上下载的,它里面确实是有nand搬运工作的,可能不是正规的做法。
是不是这样理解,2410开发板裸跑情况下,nandboot肯定还是需要的。我现在的板子上nandboot已经早被我擦出掉了。nandboot也就相当于我说的2410init.s了吧。里面做些中断屏蔽,SDRAM设置堆栈设置,可能还有UART,USB设置等。这和个人的nandboot作用有关。但其中肯定设计到nand数据搬运到SDRAM的过程吧。对于4KB一下的bin可以不用搬运也可以运行,但是大于4KB的bin是需要搬运的。
你说init.s中不负责nand搬运,而在main中操作,这我有点不懂,2410 nand启动方式下 前4KB是当做SRAM使用的。如果此时我烧录的是一个很大固件,会不会main已经被定位到SRAM区域之外呢?这样的话,不在init.s(4KB以内大小)做代码数据搬运,那么main可能执行不到了吧
-
SJF2450是用于2450芯片的,并不能够通用,你用2416的开发板肯定不行,除非修改SJF2450的源码。
-
引用 3 楼 reallyu 的回复:
m_rect 在什么地方赋值的?
我晕了,呵呵,m_rect 就是rect啊 ,呵呵,m_rect是我调试的时候加的另一个变量,贴代码的时候看错了。其实这里m_rect 就是rect
-
用V0.79版本BSP包里面的那几个DLL,例子程序glapp1_1.exe压根跑不起来,glapp2_0.exe可以跑但也是跑不了多久就挂.
glapp2_0.exe会报下面的异常
[DDHAL] ++buildDDHALInfo()
[DDHAL] --buildDDHALInfo()
[DDHAL] HalCanCreateSurface() OK
[DDHAL] HalCanCreateSurface() OK
Exception 'Data Abort' (4): Thread-Id=09c4004a(pth=8458db2c), Proc-Id=09cc003e(pprc=844ecd44) 'glapp2_0.exe', VM-active=09cc003e(pprc=844ecd44) 'glapp2_0.exe'
PC=000ac8d8(glapp2_0.exe+0x0009c8d8) RA=000ac864(glapp2_0.exe+0x0009c864) SP=00effd60, BVA=00000000
复制代码
-
C5不知道起何作用
-
是用LDR伪指令,必须在正负4K的范围内定义一个文字池,编译器会自动把你要立即数先放置到文字池再做处理的,其实也就是放置在RAM!虽然ARM总线是32位的,但是对于MOV指令,只能赋值八位数值,比如0x20,若是赋值0x200,系统会通过移位实现,也就是说32位数据中,出现1的位最高和最低之间不能超过八位:
超过了就要通过LDR赋值,若在汇编程序中出现,MOV R1,#0X254,系统是报错的,但要是LDR R1,0X254则是正确的!
-
估计用调试应用程序的办法是没法调试了
你可以用调试系统的办法呀,如果Image是你build的话,你用kitl就可以在你的dll里设断点了。
-
正在学arm
-
两个协议无非就是对同一数据的两种不同处理方式,串口接收到完整数据后,直接在回调函数中根据协议标识分开处理不就可以了?