圣龙扬特-AVR电子
标题:
bascom avr 接收不定长数据
[打印本页]
作者:
赵彬
时间:
2019-10-23 21:37
标题:
bascom avr 接收不定长数据
看到STM32接收完成中断,找了好久也没见AVR有类似功能,用定时器自己做了个,以在项目上验证过了
'*数据每接收完成桢进行处理,两桢数据之间的发送不能小于3MS间隔 *
'*数据接收有T1 和串口接收程序来完成 *
'**************************************************************
''*****************接收数据调用数据处理**********************************************
if timer0_start_flag=1 and usart_counter>=3 then ''****如果定时器已打开表示有数据接收AND定定时器大于3****''
stop timer0 ''****关闭定时器****''
usart_counter=0 ''****串口接收标志清零****''
timer0_start_flag=0 ''****串口打开标志清零****''
gosub data_processing ''****进行数据处理****''
gosub clean ''****清空缓存****''
endif
''**********************定时器零一MS定时器用来判断串口接收帧完成标志***********************
timer_usart:
'Capture0=246
counter0=246
if usart_counter<100 then
incr usart_counter
endif
return
''**************************************串口服务程序***************************************
usart_1:
incr i
if timer0_start_flag=0 then ''***第一次进入串口打开定时器1开始计时*****''
start timer0
timer0_start_flag=1 ''****把定时器打开标志置一表示已打开下次进入时不再执行,此位主程序里接收完成置零****''
endif
usart_counter=0 ''****每次进入都把计数清零,当接收完成不再清零大于3MS后在主程序关闭定时器等待下次接收****''
usart_reveive_buf(i)=inkey(#1)
return
''
欢迎光临 圣龙扬特-AVR电子 (http://avr.cnta.net/)
Powered by Discuz! X2.5