众所周知,RS485的工作流程是,在发送时必须把GPIO输出一个电平,在接收时,必须把GPIO设置为另一个电平,这样才可以让485芯片处于接收数据的状态,并且要及时切换485的收发状态,否则有可能造成485最后一个字节没有发送,或第1个字节无法接收等现象
CPU:AM335X
操作系统:WINCE
在WINCE中,将RS485的操作,整合到串口驱动中,实现在WINCE中的串口通讯AM335X操作串口的源码位置:
\WINCE700\platform\common\src\soc\COMMON_TI_V1\COMMON_TI_AMXX\SERIAL
MDD层源码的位置:
WINCE700\platform\common\src\soc\COMMON_TI_V1\COMMON_TI\SERIAL\COM_MDD2
开始分析程序:
先分析操作串口的部分:此部分和具体的CPU寄存器操作有关,具体的寄存器设置都在此文件中完成,例如:串口收发,中断,FIFO的设置等GetSerialObject 函数,由MDD 层调用,这里会返回一个HW_VTBL 结构体给MDD 层,MDD层以后就通过函数指针的调用方式,来操作串口设备我们在看几个重要的函数HWOpen:打开串口函数,在WINDOWS API 调用CreateFile函数后就会调用到这里,打开串口后,我们先将RS485设置为接收数据的状态
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !