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

PIC18F25K22的串口能发送数据单接收不到数据,这是怎么回事………

[复制链接]
1118|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Pace、|  楼主 | 2016-11-22 21:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是PIC18F25K22,想用他的RC6和RC7作为他的发送和接收引脚,从PIC18F4520开发板上移植过来的测试程序,但是PIC18F25K22单片机只能发送,接收不到数据,想请教你一下是什么问题????
沙发
samethyst| | 2016-11-23 09:12 | 只看该作者
注意设置这个寄存器.
ANSELCbits.ANSC7 = 0;

#define BAUD_VAL  (9600ul)
#define GetSystemClock()        (32000000ul)

void Uart_Init(void)
{
        /*连续使能接收位*/
        RCSTA1bits.CREN = 1;
        PIE1bits.RC1IE = 1;
        /*data sheet page 275*/
        SPBRG1 = ((GetSystemClock() / BAUD_VAL) >> 6) - 1;
        TXSTA1bits.TXEN = 1;
        RCSTA1bits.SPEN = 1;
}

使用特权

评论回复
板凳
Pace、|  楼主 | 2016-11-25 22:24 | 只看该作者
samethyst 发表于 2016-11-23 09:12
注意设置这个寄存器.
ANSELCbits.ANSC7 = 0;

已经找到问题了,谢谢你啊,也有你说的问题。。。。。

使用特权

评论回复
地板
Pace、|  楼主 | 2016-11-25 22:37 | 只看该作者
①我买的PIC18F4520开发板,用mplab ide v8.92,9.63版本的PICC18编译器,但是此版本的编译器不包含PIC18F25K22头文件,需下载9.65及以上版本。PIC18F25K22单片的RC7是串口的RX端,但同时也是模拟I/O口,在单片机上电复位时,该引脚默认为模拟I/O口。需要在引脚初始化的时候关闭此功能(ANSELCbits.ANSC7 = 0;)。
②根据晶振频率在软件中设置相应的频率范围。具体设置方法:config->configuration bit->在OSC中选择频率范围。

使用特权

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

本版积分规则

6

主题

34

帖子

0

粉丝