安卓开发板 推荐串口发送的数据和用单片机接收到的不一样?

所属子分类:
注册时间: 11:37
回复数: 64
主题数: 47
论坛积分:205
& &我的实验思路是:用座机呼叫SIM900A模块,SIM900A应该向串口发送RING,表示有电话呼入。。串口收到数据不为0,点亮LED0。。
在调试SIM900A模块时,发现用电脑和SIM900A模块,串口调试助手调试正常。。电脑和战舰开发板,串口调试助手调试正常。。
然后SIM900A模块和战舰连接起来就没有反应了。。
if(USART_RX_STA&0x8000)
& & len=USART_RX_STA&0x3 //接收到数据长度
& if(len&0) led0=0;//点亮LED0
&&USART_RX_STA=0;
1.开始电脑和SIM900A,串口助手调试,拨手机号码后,SIM900A会向串口显示RING RING 。。。。表示有电话呼叫。。
2.开发板和电脑串口助手调试,随便发送一个数据,LED0可以点亮。。我代码是接收到的数据长度大于0,就点亮LED0.
3.问题出现了,我用SIM900A与开发板连接。。。然后用座机呼叫SIM900A模块,如果正常,SIM900A应该向串口发送RING,表示有电话呼入。。串口收到数据不为0,点亮LED0。。。可是,LED0没有点亮。。。 难度打电话,SIM900A没有向开发板发送数据吗?
推荐参考答案
注册时间: 10:41
回复数: 56067
主题数: 376
酷贴数:27
论坛积分:59895
来自: 湖南
你接的串口1上面?
SIM900A模块接在串口1??
断开了串口1和原来的CH340的链接了吧?
我的淘宝小店:
注册时间: 11:37
回复数: 64
主题数: 47
论坛积分:205
回复【1楼】&正点原子&:
---------------------------------
。。。加入了开机先&拨号。。。SIM900A拨号打出来正常。。。然后,我打给SIM900A,开发板就是接收不到SIM900A发给串口的数据,led0没有亮。。。
&&&&&&开机拨号正常,说明SIM900A可以接收开发板的程序。。。。要么是SIM900A没有发送,要么是开发板接收不到。但是分开单独和电脑测试,收发都正常。奇怪了。
注册时间: 10:41
回复数: 56067
主题数: 376
酷贴数:27
论坛积分:59895
来自: 湖南
回复【2楼】&haohan163&:
---------------------------------
直接用我们历程试试吧
我的淘宝小店:
注册时间: 23:23
论坛积分:11
回复【2楼】&haohan163&:
---------------------------------
楼主,你的问题解决了没?我的和你出现的问题一样。求解答呀
注册时间: 11:37
回复数: 64
主题数: 47
论坛积分:205
回复【4楼】&gaofto&:
------------------------
用原子的程序调试成功了,我自己的没成功。。。估计跟电脑串口调试助手,底层驱动有关。。我先用电脑和sim900a相互收发短信正常后,然后SIM900A模块别断电,带电操作把串口线和战舰开发板串口相应接好。战舰开发板,和SIM900A模块通信就正常了。战舰开发板串口就可以收到SIM900A的串口发送的信息了。。
电脑串口调试助手和SIM900A通信正常后,SIM900A带电操作,和战舰开发板串口跳线。此时通信正常。
搞不懂那电脑串口调试助手,底层怎么运行的,执行了什么代码。。。搞懂这个就可以解决了,但是我还没有搞懂电脑串口调试助手那界面怎么写出来的,底层到底进行了什么操作。。直接抄原子哥的代码,做触摸屏电话试验了。。
你要是研究出来了,通知我一下。我现在正在学习界面编程。。。。
注册时间: 21:03
论坛积分:1
我也遇到了同样的问题,可不可以把程序发给我看看,谢谢了!
请选择一个版面...
STM32-F0/F1/F2专区
STM32-F3/F4专区
MSP430专区
ARM7/ARM9/ARM11专区
其他Cortex系列
uCOS & uCGUI & Emwin
trochili(飞鸟)操作系统
中国RTOS联盟
FPGA/CPLD/DSP专区
数字,模拟,高频电路
编程语言学习
蓝牙/WIFI/Zigbee等通信技术
开发工具专栏
UOL 单片机面向对象语言
四轴飞行器
DIY大赛专区
DIY项目资料专区
论坛建设区
二手交易专栏
& 开源电子网() |热门排行榜
vb与51单片机通信
一键收藏,永不丢失
vb与51单片机通信国语版/vb和单片机通讯/51单片机与vb通过串口通信,单片机为什么只能发送0至255的数?然后怎么解决(发大于255的数)?
VB的mscomm控件与51单片机的通信问题各位大神,我刚刚接触mscomm控件,有个程序不成功,请各位大神指导一下。我想达的目的如下:单片机控制一个LED灯闪烁,单片机启动时,不闪烁,当我在vb的text1中输入0后,点击command后,通过mscomm控件发送出去,单片机接到这个0后,开始闪烁。程序如下:上位机:
Private Sub Command1_Click()
MSComm1.Output = Text1.Text
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
'波特率9600,无校验,8位数据,1位停止位
mPort = 5
'端口5
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.RThreshold = 1 '设置并返回发生oncomm事件的字符数
MSComm1.InputLen = 0
'为0读取整个缓冲区
MSComm1.InputMode = comInputModeText '以文本方式接收
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
'打开串口
MSComm1.InBufferCount = 0 '清空接受缓存区
MSComm1.OutBufferCount = 0 '清空传输缓存区
End Sub
下位机:
#include
sbit LED=P1^0;
void delay()
{
unsigned char i,j;
for (i=0;i先确定是上面问题还是通讯线问题还是下面问题。 做一根自环线,自发自收测试一下先。在VB中,实现PC机对51单片机的控制我是用USB转串口芯片,实现PC机和单片机通讯的。首先我先下了一个串行口通信的控件MSComm但是PC机对单片机的控制过程,我有点不太懂。以下有两个问题:1、控制一个P1.1口为高电平。我在PC机上,发送一个数据“B”给单片机。然后在单片机中断上,写上一段程序,如果接收到“B”,就控制P1.1为高。我想问,控制一个口电平高低,是不是就像这样做。如果是,还需要注意些什么。如果不是,那应该是怎么一个过程。过程就是这样哦,pc机使用mscomm或者api函数,单片机接串口,通过执行串口中断程序实现控制。一般单片机开发板都有这个参考程序,你可以看下。vb与51单片机通信,下位机的问题,高手指点啊ORG
0000H
LJMP
000BH
LJMP
0023H
LJMP
mov sp,#60
MOV R0,#50H
wait
SHOW:RET
SCAN:
PSW
SCAN2:
RI,RXT_END
MOV A,SBUF
CJNE R0,#54H,HAND
MOV R0,#50H
JNB TI,RXT_END
MOV A,#0FH
MOV SBUF,A
RXT_END:POP
RETI
END
我使用12MHZ晶振,我做了简单的发送程序,证明串口是通的,而且连接线没问题;
我需要实现的功能是RS232向单片机发送5个8位16进制数(如:0F)
但是调试很久也没搞好,不知道是中断问题,还是串行通信问题,希望大虾们指教啊!!!其它未细看。首先你的晶振选择得不对,不能用12M,误差太大(8.51%)。如果波特率不变,晶振要用11.0592M(误差为0 )。如果晶振不变,波特率可改成2400试试(误差0.16%)。 MOV T急求 VB6.0同51单片机的实时通讯VB模拟数控机床插补,产生X轴/Y轴进给信号(加/减速、正/反转),单片机接受上述8个信号 。 应该如何实现上述功能,求高手指教单片机用串口与VB通讯。vb有专门的串口控件,非常简单。如果电脑没有串口,可购买好点的usb转串口适配器,力特的较稳定。VB中关于PC机与51单片机通信的一些问题背景:本人最近在用VB中MSComm控件,对PC机与单片机之间的通信,进行编程。希望对这方面熟悉的达人能够帮我解决一下以下问题。1、单片机串行口中断问题:单片机串行口中断是不是这么一个过程:PC机给单片机每发送一帧数据,单片机就启动一次中断?2、(对问题1的追问)如果我要发送两帧数据,第一帧用来选择操作对象(比如说有P1,P2,P3三个操作对象),第二帧数据,用来操作对象赋值。这个程序该怎么写。3、在MSComm控件中,对数据发送有两个方式,一个是文本方式,一个是二进制方式。
3.1如果用文本方式发送。单片机能对这个文本进行处理吗?或者说这个文本方式发送用于什么情况。
3.2如果用二进制方式发送,但我在单片机程序里,用十六进制对发送过来的数据进行判断,这样会不会产生问题。详见以下程序。
*程序摘录MOV A,SBUFXRL A,#05HJZ SET_T01.不一定是一每发送一帧数据就启动一次中断,你也可以启动一次中断,连续发送多个数据,并将这些数据存储在单片机的存储器中,但这些数据的长度和存储位置,是你在单片机里面约定好的 2.可以的,你所说的是PC求用vb实现与51单片机的串口通讯程序,求程序LZ参阅:请教一下关于VB与51单片机传送数据的问题我想用VB通过串口送一个数字给单片机(STC89C52),单片机再通过数码管显示出来。但是单片机只能正确显示0—15这几个数字,后面的就乱了,比如发送"16",数码管上却显示"48",发送"17”,数码管上显示"49”发送“148”,数码管上又显示"112"。不知道为什么,求大神指点指点,谢谢了!!!下面是我的VB程序 Private Sub Command1_Click()If Text1.Text = "" Then
n% = MsgBox("请输入数据", 64, "错误")Else
MSComm1.OutBufferCount = 0
MSComm1.Output = Chr(Text1.Text)End IfEnd Sub Private Sub Command2_Click()EndEnd Sub Private Sub Command3_Click()If Command3.Caption = "打开串口" Then
MSComm1.PortOpen = True
Command3.Caption = "关闭串口"Else
MSComm1.PortOpen = False
Command3.Caption = "打开串口"End IfEnd Sub Private Sub Form_Load()mPort = 1MSComm1.InputMode = comInputModeBinaryMSComm1.InBufferSize = 40MSComm1.InBufferCount = 0MSComm1.Settings = "19200,N,8,1"MSComm1.RThreshold = 1MSComm1.InputLen = 0End Sub 单片机(STC89C52)程序#include#define uchar unsignedsbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x79,0x38,0x3f,0};void display(int temp);void delay(int x){ int a,b; for(a=x;a>0;a--)
for(b=120;b>0;b--);} void main(){ TMOD=0x21; TH1=0 TL1=0 TR1=1; SM0=0; SM1=1; REN=1; EA=1; ES=1; PCON=0x80; while(1)
display(receivedata);} void serial() interrupt 4{ receivedata=SBUF; RI=0;}void display(int temp) {
unsigned char ge,shi,bai,qian,
wan=temp/10000;
qian=(temp%1;
bai=(temp%;
shi=(temp%100)/10;
ge=temp%10;
dula=1; P0=table[wan]; dula=0; P0=0 wela=1; P0=0 wela=0; delay(1);
dula=1; P0=table[qian]; dula=0; P0=0 wela=1; P0=0 wela=0; delay(1);
dula=1; P0=table[bai]; dula=0; P0=0 wela=1; P0=0 wela=0; delay(1);
dula=1; P0=table[shi]; dula=0; P0=0 wela=1; P0=0xf7; wela=0; delay(1);
dula=1; P0=table[ge]; dula=0; P0=0 wela=1; P0=0 wela=0; delay(1);}VB程序 与 单片机程序,没有问题,是波特率 误差的问题 该 VB 程序 发送 范围是 0 - 128 ,& 128 时发送 的 为 0 。 单片机 波特率 和 晶振 有关,与 PC 通讯一定要用 151单片机与vb通过串口通信,单片机为什么只能发送0至255的数?然后怎么解决(发大于255的数)?可以发送多次,分别发这个数的个十百千万位。然后用程序组合vb和51单片机高手请帮帮小弟啊!这是一个vb上位机,与at89s52单片机串口通讯程序,下面的是下位机汇编程序,想增加按键检测,却无法实现p2口的按键低电平检测跳转程序部分,其他部分正常,请高手帮忙,问题究竟出在哪呢?
代码如下:
--------------------------------------------------------------------------------------------
P2,#0FFH令p2口为输入口
TMOD,#B ;定时器1工作于模式2
TH1,#0E8H设定计数值,波特率为1200 bit
TL1,#0E8H启动定时器1
SCON,#B设定串行口工作模式1
-----------------------------------------------------------------------------------
LOOP:
RI清除中断标志位,开始接收数据
RI,$等待数据接收完毕
A,#"0",NEXT1若累加器不等于0,则执行next1
ALLOFF否等于0
则执行LLOFF
A,#"1",NEXT2若累加器不等于1,则执行next2
LOAD1若等于1,则执行load1
NEXT2:
A,#"2",NEXT3
LOAD2
NEXT3:
A,#"3",NEXT4
LOAD3
NEXT4:
A,#"4",NEXT5
LOAD4
没看到你的P2口检测的代码。关于51单片机和三菱PLC通讯方面的危机各位自控领域的前辈:
小弟我刚入行不久,很多基础性的知识都模糊不清,但是最近领导要我做一个小技术改造,必须要用到51单片机和三菱FX2N系列的PLC通讯知识,就是能用51单片机读写PLC内部D10寄存器中的内容,我查了很多关于这方面的知识,知道了一个大概过程,又不知是否理解的正确,具体单片机和PLC怎么配合。
小弟我家有老小,都指望我养活,不能失去目前的工作,哪位高抬贵手,给于指点一下,甚感!
通讯格式如下:
单片机这边是具体怎么编程,是先通过SBUF向PLC发送一个05H(ENQ通讯请求),然后再立即检测接收中断RI是否为一,再将 接收SBUF中的内容跟06H(ACK正确)相比较,如果相等就准备依次发送以上通讯格式表格中的数据,再检测PLC自动返回的是否是06H(ACK)。
而PLC那边具体怎么设置,要在PLC程序里设置D8120通讯格式吗?具体格式怎么定,以哪方为主,PLC对于单片机发来的05H(ENQ)的通讯请求,是自动返回06H吗,要不要也用RS指令配合收发一下,还是直接设置好D8120后就直接使用被改写的D10寄存器中的数据。
天啦,太迷茫,只有半个月时间了,救命!象你这个单片机机急用中断来接收不用去判断RI,把51的中断打开他自动收,然后你去读取SBUF里面的内容,这时SBUF里面的就是你PLC传给你单片机的,如果是06H,单片机继续发送你的通讯数据就行了 ,
标清 基于STC89C51单片机窗帘控制器设计与制作
这是一部创新突破的新概念单片机教程,昂天电子最新出品的、新概念C51单片机教程,从最
基本手把手教你编程的点亮一个发光二极管开始,逐步深入,全面讲解了丰富的单片机内部控制世
界(计数器、定时器、串口通讯、存储器、AD、DA、红外控制、步进电机、温度传感器、光电耦
合器、继电器、数码管、键盘等),让你快速全面牢固地掌握单片机实际应用技术!【由于带宽和
容量限制,如需观看高清晰版请到】
这是一部创新突破的单片机学习视频教程!一周速成,视频教程全部分十九讲,从最基本的预
备知识开始,包括keil编译器软件的基本设置起步,即使以前没有学过任何单片机和C语言知识,也
能从基本开始起步,一步步深入精通单片机。视频讲座内容抛弃了传统大学课堂里纯理论枯燥的填
鸭式教学,而是和单片机学习板密切结合,理论和实验实践编程同步进行,使学员大大深入地理解
和掌握了单片机和C语言编程的各方面知识。同步录像程序的编写过程和实验板上实际运行现象,理
论和动手能力齐头并进,一周速成一气呵成,牢固掌握单片机和C语言!视频教程从最基本的点亮一
个发光二极管开始,到流水灯、数码管,再到中断、定时计数器,再到AD(模数转换芯片)、DA
(数模转换芯片),再到光电耦合器、继电器,再到红外通信,再到键盘扫描,再到液晶显示,再
到外扩步进电机,再到液晶显示,再到芯片时序图,再到原理图的绘制和PCB的设计......一步步逐渐
深入,一点点理论结合实践编程,螺旋式上升和深入,让你从对单片机一无所知到精通单片机内部
的奇妙世界!只要有恒心认真听、专心看,并结合实验板跟着动编写程序现场调试实验,保证一周
就能掌握单片机的实际应用和C语言编程!【由于带宽和容量限制,如需观看高清晰版请到播放列表加载中...
正在载入...
分享视频:
嵌入代码:
拍下二维码,随时随地看视频
WZT开发板----单片机与PC串口通信返回发送数据
上 传 者:
内容介绍:
WZT开发板----单片机与PC串口通信返回发送数据
Channel Me 精选
我来说点啥
版权所有 CopyRight
| 京网文[0号 |
| 京公网安备:
互联网药品信息服务资格证:(京)-非经营性- | 广播电视节目制作经营许可证:(京)字第403号
<img src="" width="34" height="34"/>
<img src=""/>
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img src="///img/blank.png" data-src=""/>
<img src="///img/blank.png" data-src="http://"/>
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/>
<i data-vid="" class="ckl_plays">
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/><i data-vid="" class="ckl_plays">
没有数据!
{upload_level_name}
粉丝 {fans_count}
{video_count}
{description}单片机串口通信,发送数据时,无法改变SBUF的值_百度知道
单片机串口通信,发送数据时,无法改变SBUF的值
我用PC给单片机发送指令,单片机接收后进行一系列操作后返回给PC相应指令。现在问题是,单片机可以收到串口发来的数据,但是在回发数据时,老是发送不成功。我单步调试了下,发现不能给SBUF赋值。下面是单片机发送指令的程序。void Send_Com(uchar *p, uchar num){ uchar i=0; count = 0; for(i=0;i&num哗紶糕咳蕹纠革穴宫膜;i++) {
SBUF = *(p+i);
while(!TI);
TI = 0; }}在count++处我设置断点,发现运行到这里时, *(p+i)并没有把值赋给SBUF,SBUF没有变。请问这是怎么回事。搞了一晚上,烦死了快!
提问者采纳
SBUF = 哗紶糕咳蕹纠革穴宫膜*(p+i);
发送、输出,需要用外接的设备,才能看到内容。仿真时,可以用虚拟设备,来看输出的内容。PROTEUS、KEIL,都有虚拟的设备,可以看到输出的内容。
提问者评价
我就是用的虚拟设备,所以才看不到输出内容。用了开发板后就可以了
其他类似问题
按默认排序
其他4条回答
51单片机中,数据收发寄存器SBUF在物理上其实是两个寄存器,发送时用的是发送SBUF,接收时则是接收SBUF,二者地址一样,但前者只能写不能读,后者反之。
所以你在调试时所看到的实际上是接收SBUF的内容,那一个是看不见的。
通讯发送不成功的原因应该是初始化设置没做好,你可以参看一下KEIL C自带的HELLO.C的设置,就是是通过串口发送信息的。
/* SCON: mode 1, 8-bit UART, enable rcvr
TMOD |= 0x20;
/* TMOD: timer 1, mode 2, 8-bit reload
*哗紶糕咳蕹纠革穴宫膜/
reload value for 1200 baud @ 16MHz
timer 1 run
set TI to send first char of UART
*/只要根据波特率将TH1设置正确就应该没问题了。
Uart_initial(void )
串口初始化 {
SCON=…… //按实际
}///////////////////////////////你的送发子程改为:TI=0;
//先清中断
(1) SBUF= *(p+i);//将数交给SBUF
while(TI==0);//等TI置1(发送完毕,中断时硬件会将此位置1,说明发送完毕)(2)/////////////////////////////假若你的串口接收中断程序为:void service_uart() interrupt 4 using 1里面再加上:{
写上你要收数据的程序
{TI=0;//清掉发送的标记,说明已经发送完毕(3)
}}////////////////////////////////////////////////按上(1)(2)(3)修改,准行
你可以把*(p+i)换成&#39;a&#39;看看能不能发送a,如果能,你就看看是不是*(p+i)本身有问题。
SBUF实际上分为两个不同的寄存器,发送时用的SBUF只读,接收时用的SBUF发送后SBUF的值又是多少??保持不变?是的。是否改变或不变不太清楚,
sbuf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 单片机开发板价格 的文章

 

随机推荐