-
-
MARK
-
引用 9 楼 will_shao 的回复:
没有办法保证一个数据包不会被分成几次接收,而且一次接收的数据也不一定都属于同一个数据包,所以需要修改你的通讯协议。要在数据包的头部,添加一个数据包长度字段,根据这个长度字段来确定包的结尾在哪里。
现在的问题是这样的,首先通讯协议不可改(跟别人通讯,发送部分已确定),而且已确定该协议在现有硬件上是可以实现的;其次现在的协议中每包数据的开始确实有这包数据共多少个,但是现在的问题是不止是一包数据按几包着收了,还有就是可能丢数,就是收来的一包中数据不连续,某些数据没收进来,这个怎么回事呢。
我现在的做法是通过while(1)反复调用串口接收函数RX();只要接收缓冲区内有新数就接收,否则就跳出循环,收到的数先放到一个临时的数组中,等一包数据接收完毕之后再做处理,这样做可能会带来一个问题就是串口发送的时间和DSP接受的时间配合可能会出问题,但是现在调试的结果是,当我调到某些合适的值后,数据可以正常接收,在数据小于150KB的时候还可以,再大的时候就会乱掉,纠正不回来。
大家帮我分析一下可能是什么原因呢
-
PC13管脚注意事项你真的都看过了?
你漏了最关键的代码:
BKP_TamperPinCmd(DISABLE);/* To output Second singal on Tamper pin, the tamper functionality must be disabled */
BKP_RTCOutputConfig(BKP_RTCOutputSource_Second);/* Enable RTC Clock Output on Tamper Pin */
-
谢谢以上各位高手的指教.
现在我已经发现它的问题所在:
因为这个程序是FAE给的DEMO, 里面已经有对选项字节的初始化.
如果我删除这一段, 烧录时就不会报故障, 但是仍然不能运行(芯片没反应)!
加上去之后, 就报那个选项字节错误.
这样, 就有三个问题:
为什么我第一次烧录可以运行(同样带选项字节初始化),而以后就烧录不成功了呢?
为什么我删除选项字节初始化之后再次烧录, 即使烧录成功, 芯片也没有反应呢?
如果控制程序中已经有了选项字节的初始化, 然后用STVP烧录时又有个选项字节页面, 它是不是冲突了呢?
到底听谁的啊?
请高手指点.
-
先学习USB协议本身,STM32的USB只是实现协议的一种方式,学好USB协议之后才能理解STM32中的实现,倒过来则永远学不到真正的东西,只能学到皮毛。
版主说的有道理,不理解USB协议,看程序就如看天书。根本不知道在干嘛
-
mark
-
软件处理很简单,看是要找极值还是找最值,极值可以即可找到,最值会有一定的延时
先说找极值,找极大值的办法就是,这次的采样如果比上次的小,那么上次采样就是极大值。
极小值同理,
找最值的办法就是,先设定一个阈值
两个变量,一个是最大值,一直是最小值,都赋值为0(有正负的情况),或者,将最大值赋值为最小的数,将最小值赋值为最大的数。
如果这个采样比最大值大,那么最大值等于这个采样,不中断,
如果这个采样值比最小值小,那么最小值等于这个采样,不中断,
如果这个采样比最大值小,小多少,看阈值,差值超过阈值,认为已经找到最值,中断。
视乎波形的纹波情况来定阈值的大小。
-
使用STM103USB虚拟串口程序后,该设备插在我电脑上的任意一个USB接口上,都显示同一个串口COM4,但是我使用在市场上买的USB转串口设备,插在不同的USB口上,显示不同的COM口,这样好吗?是不是如果两个以上的STM32虚 ...
插在不同的USB口上,显示什么COM口都可以,只要能用,任何口都可以。
-
LZ给的STM32L datasheet的链接,看了一下,STM32L还是蛮有特点、优势的,比较好奇它的定价会怎么样?
STM32L.png
(76.91 KB)
下载次数:7
2010-4-16 09:55
-
用STC的单片机就可以了,几元搞定!用STM32很高档?
-
晕,具然没有显示!你把pathname换为对应的图片ID就行了…
-
刚查了下, 一定要做memory的marshall操作, 到网上搜一下吧.
-
引用 4 楼 so927 的回复:
这个帖子好像没有讨论什么结果啊
你没仔细看吧,呵呵, 结果:
最主流的方案 是采用GPRS/GSM/CDMA,低成本,简洁实用,开发难度低。
WIFI 与Zigbee 距离受限,采用他们开发成本高,不太适合。
建议楼主还是认真看看。
-
等待中
-
硬件需要烧写器,软件需要烧写软件 这两样具备了,就可以测试了
-
其实无所谓 读硕士就俩目的 一是弄文凭 一是学东西
弄文凭的话 控制工程专业又或者自动化、通信方向的其他专业没啥差别
学东西的话 全靠自己 呵呵
倒是推荐楼主在选择的时候能多了解一下导师的业务方向,读研的时候导师就是老板,能不能学到东西主要看老板联系到的业务方向。
老板手下没活儿干的话,凭看书本能真正掌握的东西也是少得可怜。
-
S29GLxxxM MirrorBitTM Flash Family
S29GL256M, S29GL128M, S29GL064M, S29GL032M
256 Megabit, 128 Megabit, 64 Megabit, and 32Megabit,
3.0 Volt-only Page Mode Flash Memory featuring
0.23 um MirrorBit process technology
这是在手册前面copy过来的
-
还是不对,把函数名已经改了
build的时候还是报上面的错误
-
我的问题已经解决了,原因是犯了低级错误:
原来管脚配置为
v_pIOPregs->rGPBCON &= ~(0x03 rGPBCON |= ~(0x02 rGPBCON &= 0x33ffff;
v_pIOPregs->rGPBCON |= 0x040000;
复制代码
后面加载的驱动使用了错误的管脚配置,把前面的配置全覆盖更改了,所以就出现了上面的错误。以前一直往WinCE的ISR、IST方面找原因,而忽略了最初级的配置,导致问题一直拖到现在。
经常去gooogleman你的博客,期待你的问题精彩讲解。