打印
[PIC®/AVR®/dsPIC®产品]

PIC18F25K80串口通信调试不通啊

[复制链接]
3232|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cyj521|  楼主 | 2015-11-14 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了个小程序想试一下串口通信,串口助手就是没有接收到数据,大神们帮帮忙吧
#include <pic18.h>
#include "config.h"  //PEIZHI
void usart_init()
{
        TRISB0=0;
        TRISC6=0;    //TX
        TRISC7=1;   //RX
        SPBRG2=25;
        BAUDCON2=0x00;
        TXSTA2=0x20;
        RCSTA2=0x90;
}
void delay(int c)
{
        int x,y;
        for(x=0;x<110;x++)
                for(y=0;y<c;y++);
}
void main()
{
        usart_init();
        while(1)
        {       
                delay(1000);
                PORTBbits.RB0=~PORTBbits.RB0;
                TXREG2=0x45;
        }
}
沙发
JY-DX-JY| | 2015-11-14 16:24 | 只看该作者
看看手册,哪儿没配置对。

使用特权

评论回复
板凳
cyj521|  楼主 | 2015-11-16 10:05 | 只看该作者
JY-DX-JY 发表于 2015-11-14 16:24
看看手册,哪儿没配置对。

看了N遍了,也查了网上的程序,没发现什么问题啊

使用特权

评论回复
地板
JY-DX-JY| | 2015-11-16 10:38 | 只看该作者
或许是硬件问题,换块板子试试

使用特权

评论回复
5
yklstudent| | 2015-11-16 15:03 | 只看该作者
新人上手,尽量自己动手搞定;如果 自己确实搞不定,那就参考别人的代码吧

使用特权

评论回复
6
cyj521|  楼主 | 2015-11-16 15:29 | 只看该作者
yklstudent 发表于 2015-11-16 15:03
新人上手,尽量自己动手搞定;如果 自己确实搞不定,那就参考别人的代码吧 ...

参考了啊,代码上看不出问题来

使用特权

评论回复
7
yklstudent| | 2015-11-16 15:37 | 只看该作者
那就检查你的硬件吧,这个别人也帮不了你,找块示波器看看通信

使用特权

评论回复
8
gmm2015| | 2015-11-16 16:45 | 只看该作者
示波器看下有没有数据发送出来。
电脑串口助手参数是否配置正确,是否有打开

使用特权

评论回复
9
cyj521|  楼主 | 2015-11-16 16:51 | 只看该作者
yklstudent 发表于 2015-11-16 15:37
那就检查你的硬件吧,这个别人也帮不了你,找块示波器看看通信

程序没问题吗,示波器看了TX是高电平,RX是低电平

使用特权

评论回复
10
cyj521|  楼主 | 2015-11-16 16:52 | 只看该作者
gmm2015 发表于 2015-11-16 16:45
示波器看下有没有数据发送出来。
电脑串口助手参数是否配置正确,是否有打开 ...

程序没问题吗,示波器看了TX是高电平,RX是低电平

使用特权

评论回复
11
gmm2015| | 2015-11-16 16:58 | 只看该作者
cyj521 发表于 2015-11-16 16:52
程序没问题吗,示波器看了TX是高电平,RX是低电平

嗯,那就对了。你数据都没有发送出来,怎么可能接收到数据呢?直接测量单片机出来的RX,如果没有数据发送出来,那应该就是程序问题。(是不是管脚初始化没配置好?)

使用特权

评论回复
12
cyj521|  楼主 | 2015-11-16 17:09 | 只看该作者
gmm2015 发表于 2015-11-16 16:58
嗯,那就对了。你数据都没有发送出来,怎么可能接收到数据呢?直接测量单片机出来的RX,如果没有数据发送 ...

初始化是把
1 两个引脚都配置成输入(书上这么写的,我试过配置成RX入,TX出也不行)
2 SPEN使能串口
3 SYNC异步模式
4 TXEN使能发送
5 配置波特率
还有什么没注意的吗

使用特权

评论回复
13
gmm2015| | 2015-11-16 17:17 | 只看该作者
cyj521 发表于 2015-11-16 17:09
初始化是把
1 两个引脚都配置成输入(书上这么写的,我试过配置成RX入,TX出也不行)
2 SPEN使能串口

你用的是开发板吗?用开发板自动的程序入门
如果没有,新手建议买开发板学习

使用特权

评论回复
14
yklstudent| | 2015-11-16 17:49 | 只看该作者
cyj521 发表于 2015-11-16 16:51
程序没问题吗,示波器看了TX是高电平,RX是低电平

你参考谁的串口查询发送函数是像你这么写的?
用示波器看看TX引脚的波形数据

使用特权

评论回复
15
cyj521|  楼主 | 2015-11-17 09:13 | 只看该作者
gmm2015 发表于 2015-11-16 17:17
你用的是开发板吗?用开发板自动的程序入门
如果没有,新手建议买开发板学习 ...

别的模块,像CAN,PWM,定时器等等都测试过的,而且自己做板也调试过了,就这个串口不行,头疼啊

使用特权

评论回复
16
cyj521|  楼主 | 2015-11-17 09:14 | 只看该作者
yklstudent 发表于 2015-11-16 17:49
你参考谁的串口查询发送函数是像你这么写的?
用示波器看看TX引脚的波形数据 ...

参考配置寄存器是那样的,发送我只是想弄最简单的,有数据就行,示波器看TX是持续高电平

使用特权

评论回复
17
yklstudent| | 2015-11-17 10:28 | 只看该作者
一直是高电平那就不对了,USART一般都是一个起始位,8个数据位,一个停止位构成;所以怎么可能一直是高电平呢,所以先检查硬件或者直接测下MCU部分的TX引脚波形是否一直也是高电平,是的话找软件的问题吧

使用特权

评论回复
18
cyj521|  楼主 | 2015-11-17 10:46 | 只看该作者
yklstudent 发表于 2015-11-17 10:28
一直是高电平那就不对了,USART一般都是一个起始位,8个数据位,一个停止位构成;所以怎么可能一直是高电平 ...

我程序里加了个闪烁的小灯,是正常工作的。我就是直接量MCU的TX引脚,一直是高电平(不过我测试时TX没接max232转换、应该没有影响的吧),软件上应该就从程序找问题吧,看不出来啊

使用特权

评论回复
19
gmm2015| | 2015-11-17 21:22 | 只看该作者
cyj521 发表于 2015-11-17 10:46
我程序里加了个闪烁的小灯,是正常工作的。我就是直接量MCU的TX引脚,一直是高电平(不过我测试时TX没接m ...

换一块板子试一下,如果还是一样现象。基本就可以判断是程序问题了

使用特权

评论回复
20
cyj521|  楼主 | 2015-11-18 09:36 | 只看该作者
gmm2015 发表于 2015-11-17 21:22
换一块板子试一下,如果还是一样现象。基本就可以判断是程序问题了

可以帮我看看程序有没有问题吗,我都查了好多遍了也找不出来,或者是否配置位或其它原因可能会导致的,我自己再验证一下,谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

34

帖子

1

粉丝