❶ Keil调试串口助手,单片机无法接收上位机发送的数据;但可以发送 PC发送数据时,单片机RX波形幅值太小
试试这样:
void UART() interrupt 4
{
//ES=0;//关中断//不需要关中断
if (RI)
{RI=0;//接收引起中断
rxbuf[n]=SBUF;
//while(!RI);//OK or NG???//删除这句
n++;
}
if(n==7) {rx_fla=1;n=0;}//注意重置n
//ES=1;
}
❷ 我应该如何用示波器来查看单片机串口发送来的数据呢示波器应如何调节呢
如果可以做到连续发送相同的数据,可以调节时基(X轴)宽度到一个合适的位置。观察时记住单片机TXD输出端电平从高到低的一个跳变表示信息传输开始,然后根据波特率计算一下时长,对应在示波器屏幕上根据时基的宽度去观察信号。可以使用不断发送数据0X55(0101 0101),然后中间加点延时时间,以9600波特率为例,则一个字节大约需要1ms,可以加200us的延时,这样可以区分每个字节的信息),这样,第一个跳变后的0.1ms长度就是起始位,第二个0.1ms长度应该是0,第三个0.1ms长度应该是1......。
以上就是使用示波器观察的基本方法,实际应用当中,由于数据的不规则性,可能需要使用有记忆功能的示波器,然后采用下降沿触发的方法得到需要的波形。
❸ 单片机串口输出数据时,TX有波形变化,串口助手却没有输出
1.
看波特率是否匹配;
2.
看显示的是十六进制还是字符;
3.
看是否有校验位;
4.
数据位是8还是9;
5.
看连线是否松动,脱焊;
希望可以帮到你
❹ 怎么将串口发来的数据绘成波形和3D图像
Visual_Basic与_RS-232_串行通信控制
里有 例程
❺ 单片机,串口调试,射频发射器
楼主的232协议是TTL逻辑的还是RS-232电平的,最好拿示波器观察一下
232电平或者说串口电平,有的甚至说计算机电平,所有的这些说法,指得都是计算机9针串口 (RS232)得电平,采用负逻辑,
-15v ~ -3v 代表1
+3v ~ +15v 代表0
而TTL逻辑的电平是
+5V代表1,
0V 代表0
以前调试GPS的时候就遇到类似的问题
另外,波特率的不匹配也有可能造成上面的现象
❻ 单片机串口通信原理
异步通信
固定波特率下传送0,1信号
就是在规定的时间间隔内传送0.1数据
❼ 怎么用单片机产生PWM波形
单片机产生PWM波形波形的方法:
主要是采用软件控制,控制2个时间。
具体就是由单片机的引脚输出PWM波形;单片机引脚
如P1.7
控制其输出高电平的时间T1
和输出低电平的时间T2。
PWM波形的周期T=T1+T2
PWM波形的占空比=(100T1/T)%
PWM波形实现的算法:
1
根据PWM波形的频率f,计算出PWM波形的周期T=1/f;
2
根据PWM波形的占空比
计算出高电平时间
T1=占空比×T
3
计算出低电平时间
T2=T-T1
4
按上述时间去控制
单片机引脚高低电平的时间就可以了。
呵呵
赶快自己写程序吧
别忘了给俺加分呀
❽ 51单片机 用 串口控制 输出 PWM 波形 这程序为什么不行求高手指教。。
看来你是想用串口中断 定时器查询方式 串口中断程序里面为什么会有//这个符号呢?应该去掉吧,//这个是注释用的。还有既然发生中断了RI就肯定是等于1了,没有必要判断是否等于1。另外主程序第一句前面也要去掉//。编程要严谨啊。
❾ 在调试rs232串口通信时,单片机往PC机上发数据,串口调试助手可以接收,但是PC往单片机发数据,接收不到。
先解释一下现象:
(1)MAX232的12脚即R1OUT连接到了单片机的RX脚,因此使用探头碰MAX232的12引脚时导入了干扰信号,所以接收到了乱的数据。同时,也证明了单片机的接收电路和程序都没有问题。
(2)板子上的地接到示波器上的地,PC才能收到数据,说明单片机与PC没有共地。同时,也证明了单片机的发送电路、程序和PC的接收电路都没有问题。
原理:
(1)PC的串口即RS232有9个引脚,与单片机通信时用到三个引脚,依次是2脚RX、3脚TX、5脚信号GND。
(2)而单片机串口与此相反,2脚TX、3脚RX、5脚信号GND。
(3)只要把这三根线依次连接,2-2、3-3、5-5即可完成通信。
(4)同时,根据实际通信设备接口不同,串口线也分多种,如直连线、交叉线、公母头区别等。
故障排除流程:
(1)用万用表等测量MAX232的14脚T1OUT与开发板串行接口的2脚TX、MAX232的13脚R1IN与开发板串行接口的3脚RX、开发板串行接口的5脚与电源地是不是分别连接。如果连接没问题,则进行下一步。
(2)用万用表等测量串口线,PC端的2脚与单片机端的2脚、PC端的3脚与单片机端的3脚、PC端的5脚与单片机端的5脚是不是分别对应,如果对应连接没问题,则进行下一步。
(3)将PC上串行接口的2、3引脚短接。
(4)打开串口工具如“超级串口”等,下载地址http://www.powerserial.com/download/,打开串口,在输入框中随便输入几个字符,看是不是能在接收窗口中收到。
(5)如果收不到,则说明PC的串口问题(排除串口工具没有开错串口或短接没问题的情况下),换台电脑试下。能收到,则说明电脑端收发都没问题,进行下一步。
(6)将串口线插到电脑上,开发板端的插头不插而直接将2、3脚短接。再次用串口工具发送,看是否能接收到,如果能接收到,则证明串口线没问题,进行下一步。
(7)将串口线插到开发板得串行接口上,再使用串口工具收发。
(8)如果以上都不行,则自己做3根线,也可以使用杜邦线,将PC的TX与开发板的RX、PC的RX与开发板的TX、PC的信号地与开发板的地分别相连。再用串口工具收发测试。
通过以上步骤,则可以逐步排查到问题的具体原因。不过,根据问题及之后的描述,最大的可能性是串口线用的不对,导致PC串口与开发板串口的3根线没有分别对应上。