全球旧事资料 分类
ifle
c
tRxd读取长度大于接收到的数据长度时,
fle
c
tRxd读取长度设置为实际接收到的数据长度fori0ile
i拷贝接收到的数据
bufbufRxdibufc
tRxd0清零接收计数器
retur
le
返回实际读取长度voidDelayX10usu
sig
edchart软件延时函数,延时时间t10us
do_
op__
op__
op__
op__
op__
op__
op__
op_whilet
voidUartWriteu
sig
edcharbufu
sig
edcharle
串口数据写入函数,即串口发送函数,待发送数据指针buf,数据长度le
RS485_DIR1RS485设置为发送whilele
发送数据
flagO
ceTxd0SBUFbufbufwhileflagO
ceTxd
fDelayX10us5等待最后的停止位完成,延时时间由波特率决定RS485_DIR0RS485设置为接收voidUartDriver串口驱动函数,检测接收到的命令并执行相应动作u
sig
edcharle
u
sig
edcharbuf30ifcmdArrived有命令到达时,读取处理该命令
cmdArrived0le
UartReadbufsizeofbuf2将接收到的命令读取到缓冲区中bufle
r在接收到的数据帧后添加换车换行符后发回bufle
UartWritebufle
voidUartRxMo
itoru
sig
edcharms串口接收监控函数staticu
sig
edcharc
tbkp0staticu
sig
edcharidletmr0ifc
tRxd0接收计数器大于零时,监控总线空闲时间ifc
tbkpc
tRxd接收计数器改变,即刚接收到数据时,清零空闲计时
c
tbkpc
tRxdidletmr0elseifidletmr30接收计数器未改变,即总线空闲时,累积空闲时间
idletmrmsifidletmr30空闲时间超过30ms即认为一帧命令接收完毕
cmdArrived1设置命令到达标志
felsec
tbkp0voidI
terruptUARTi
terrupt4UART中断服务函数ifRI接收到字节RI0手动清零接收中断标志位ifc
tRxdsizeofbufRxd接收缓冲区尚未用完时,bufRxdc
tRxdSBUF保存接收字节,并递增计数器ifTI字节发送完毕
TI0手动清零发送中断标志位flagO
ceTxd1设置单次发送完成标志
mai
c文件程序源代码i
cludereg52hu
sig
edcharT0RH0T0重载值的高字节u
sig
edcharT0RL0T0重载值的低字节voidCo
figTimer0u
sig
edi
tmsexter
voidCo
figUARTu
sig
edi
tbaudexter
voidUartRxMo
itoru
sig
edcharmsexter
voidUartDrivervoidmai

fEA1
开总中断
Co
figTimer01配置T0定时1ms
Co
figUART9600配置波特率为9600
while1
UartDrivervoidCo
figTimer0u
sig
edi
tmsT0配置函数u
sig
edlo
gtmp
tmp1105920012定时器计数频率
tmptmpms1000计算所需的计数值
tmp65536tmpr
好听全球资料 返回顶部