注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
god_of_death的个人空间 https://home.eeworld.com.cn/space-uid-405817.html [收藏] [复制] [分享] [RSS]
日志

pic18f452串口通信程序纠结问题

已有 1334 次阅读2012-4-7 09:12

#include<p18cxxx.h>

 

void PIC18F_High_isr(void);  //中断服务函数声明

#pragma code high_vector_section=0x8

void high_vector (void)
{
 _asm goto PIC18F_High_isr _endasm
}

#pragma code


#pragma interrupt PIC18F_High_isr

void PIC18F_High_isr (void)
{
 
PIR1bits.RCIF=0;
// TXREG=RCREG;     把上位机发送的数据再发回上位机,为什么这一句能实现我所想要的功能,而下一句不能


  
 TXREG='A';     //上位机发送数据,单片机发送一个A回来           但问题是发了很多个A回来,这是为什么

 
 

}

void main(void)
{
 DDRDbits.RD7=1 ;
 //TRISC=0X00;
 DDRCbits.RC6 =0 ;   //把RC6的方向设置为输出  
    DDRCbits.RC7 =1 ;     //把RC7的方向设置为输入
 RCSTAbits.SPEN=1;  //设置串口模块  (把RX/DT 和TX/CK 引脚配置为串口引脚)
 TXSTAbits.SYNC=0;  //设置为异步模式
 TXSTAbits.BRGH=1;   //高速
 SPBRG=16000000/64*(1*3+1)/9600-1;   //波特率寄存器置位,9600
 RCSTAbits.CREN=1;  //使能接收
 TXSTAbits.TXEN=1;   //使能发送
 
 IPR1bits.RCIP=1;   //高优先级
 PIE1bits.RCIE=1;   //串口接收中断使能
// PIE1bits.TXIE=1;  

 INTCONbits.PEIE=1;  //外设中断使能,使能所有未被屏蔽的外设中断
 INTCONbits.GIE=1;
// PIR1bits.RCIF=0;
 
 while(1)
 {
 }

}

 

 

 

 

问题写在中断代码的右边了

 

本文含有来自论坛的附件或图片:[问题.jpg],点击查看原帖附件。

全部作者的其他最新日志
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章