电脑上的rs232串口接收不到数据

我想用单片机通过串口传送数据到电脑里,rs232串口的2,5脚用示波器测了,有正负8.5V左右的波形输出,可为什么连上电脑上的串口后,再用串口助手软件接收,就是接收不到数... 我想用单片机通过串口传送数据到电脑里,rs232串口的2,5脚用示波器测了,有正负8.5V左右的波形输出,可为什么连上电脑上的串口后,再用串口助手软件接收,就是接收不到数据? 展开
 我来答
用q户名
2018-07-04 · 知道合伙人数码行家
用q户名
知道合伙人数码行家
采纳数:56269 获赞数:150464
我最然懂的不多,但是我愿用全力来帮助大家。如果有不周到之处,还望大家海涵!

向TA提问 私信TA
展开全部
  方法一:直接在PC端用线短接2、3脚(拿金属钥匙就行),机端用串口助手/精灵之类的软件实时发送接收,会接收到自己发出的数据,这样可以说明引脚没错且PC端串口正常;
  方法二:检查设置的波特率与PC接收的是否一致,检查发送方式同步还是异步勿混淆;
  方法三:交叉一下收/发数据线次序,可能给弄反了;
  方法四:怀疑一下用的串口助手,有些软件可能是不可靠的,换一个试试,这个情况遇到过。
zhidao_ceo
推荐于2018-04-14 · TA获得超过993个赞
知道小有建树答主
回答量:345
采纳率:0%
帮助的人:330万
展开全部
引脚貌似不对吧?看你怎么数了,一般收发是说2、3脚,提几个测试解决办法
方法一:直接在PC端用线短接2、3脚(拿金属钥匙就行),机端用串口助手/精灵之类的软件实时发送接收,会接收到自己发出的数据,这样可以说明引脚没错且PC端串口正常;
方法二:检查你设置的波特率与PC接收的是否一致,检查发送方式同步还是异步勿混淆;
方法三:交叉一下收/发数据线次序,可能你给弄反了;
方法四:怀疑一下你用的串口助手,有些软件可能是不可靠的,换一个试试,这个情况我遇到过。
GOOD LUCK!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
褒艾0Ir
2010-11-01 · TA获得超过998个赞
知道小有建树答主
回答量:615
采纳率:50%
帮助的人:144万
展开全部
串口助手并不会接受乱码。
如果波特率不同步。或者发送格式不一致。都接收不到东西。
比如你用BCD码发送,而串口助手用 16进制接收。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
crjp78
2010-11-10 · TA获得超过239个赞
知道答主
回答量:455
采纳率:0%
帮助的人:91.4万
展开全部
;用键盘输入一个字符串(回车结束),含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示

data segment
mess db 0dh,0ah,'Input String: $'

sz db 0 ;数字个数
dAx db 0 ;大写个数
xXx db 0 ;小写个数

SZ_C DB 100 DUP ('$')
DX_C DB 100 DUP ('$')
XX_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'

data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;显示结果
GOON:
cmp al,'0'
jl NEXT

cmp al,'9'
jg NO_0_9
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT

NO_0_9:

cmp al,'A'
jl NEXT

cmp al,'Z'
jg NO_D_AZ
inc DAX
MOV BX,OFFSET DX_C
MOV CX,0
MOV CL,DAX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT

NO_D_AZ:

cmp al,'a'
jl NEXT

cmp al,'z'
jg NO_X_AZ
inc XXX
MOV BX,OFFSET XX_C
MOV CX,0
MOV CL,XXX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT

NO_X_AZ:
JMP NEXT

DISP_1:

CALL CRLF_P
CALL CRLF_P

mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------

CALL CRLF_P

mov al,DAX
CALL DISP_CZR
mov ah,09
lea dx,DX_C
int 21h
;-------------------

CALL CRLF_P

mov al,XXX
CALL DISP_CZR
mov ah,09
lea dx,XX_C
int 21h
;---------------------

CALL CRLF_P
;-------------------------
ENDD:
ret

main endp

;=========================================
DISP_CZR PROC NEAR ;显示10进制数字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回车换行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start

用MASM5.0汇编,用LINK连接,以下是运行实例:

Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh

014: 83465863485388
024: DHGFEUUYURYEDBJBNGFJHJHG
012: jsfjdffhdjfh
请参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sujiexx
2010-10-31 · TA获得超过1688个赞
知道小有建树答主
回答量:644
采纳率:0%
帮助的人:361万
展开全部
因为你使用的是sp.ReadLine(); 而在你发送的数据里面如果没有\n 的话ReadLine(); 是无法返回值的。你应该使用sp.ReadExisting(); 但是这个的缺点是读取的数据可能不全 需要进一步进行处理 电脑系统有问题,不然就是你的主板有问题。找个USB转串口线试下就知道是那个出问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式