首页>>论坛 >>技术社区 >>Ramtron社区论坛 >>微控制器
|
我要发帖  | 我要投票  | 我要回复  | 收藏
1

如何实现单片机串口实时控制

如何实现单片机串口实时控制
 
问一个比较菜的问题,pc通过串口传给单片机的数据怎么做才能存进E2PROM中,我想通过读E2PROM用单片机实时给别的器件传参数,我现在做的方法是把串口接收到的数据放到一个数组里,然后再传输结束时置位一个bit型变量,再在主函数里查询这个变量的状态,一旦置位就执行写E2PROM的函数,把这个数组里的数依次写到E2PROM中,可是我发现写进去的数和发的数不一样,不知道是什么原因,另外还有没有更好的实现方法
于2009-01-18 07:36前回复此主题可获赠2积分。
 
相关主题
回复 链接 收藏
 
RE:如何实现单片机串口实时控制
 
你这个典型的fifo队列问题.但是你描述不清.一般这是通道或消息队列的处理方式
 
回复 链接 收藏
 
RE:如何实现单片机串口实时控制
 
你对问题不能描述清楚,还是先看看你写的程序吧!
1.串行口接收到的数据是否正确?如不正确,修改接收程序,确保接收正确.
2.写入E2PROM是否正确?确保写入数据正确,如果不正确,检查写入代码.
3.确保处理数据写入E2PROM的过程中没有接收到新的串行数据,以防止数据冲突.
 
回复 链接 收藏
 
RE:如何实现单片机串口实时控制
 
收发数不对有可能是波特率问题,也可能是你的存储器读写程序有问题。如果你是中断方式收数,收到后就存数组里,可以在中断服务程序里置标志,因为数据收发肯定是一帧一帧的,收满一帧标志有效,在main函数里查询此标志,一旦该标志有效就将数组里的数送到E2PROM存储,这就是一个实时过程。查一下你的程序,有问题可以继续讨论。
 
回复 链接 收藏
 
回复:如何实现单片机串口实时控制
 

多谢各位的指点。

 

3.确保处理数据写入E2PROM的过程中没有接收到新的串行数据,以防止数据冲突.

 

用什么方法防止数据冲突?如何查看?

 
回复 链接 收藏
 
RE:如何实现单片机串口实时控制
 
我有做过一个“多路数据采集系统”里面就包括通过上位机读写24C02的功能,部分制作图片请到http://user.qzone.qq.com/175264198QQ相册查看。
 
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏
1