搜索
bottom↓
回复: 6

串口程序能收 不能发,求教

[复制链接]

出0入4汤圆

发表于 2013-4-16 12:34:11 | 显示全部楼层 |阅读模式

#include<pic.h>
#include<pic16lf1933.h>



#define uchar unsigned char
#define uint unsigned int
//PIC16LF1933.H
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
__CONFIG(WRT_OFF & PLLEN_OFF & STVREN_ON & BORV_LO & LVP_OFF);
uchar recdata;


void delay()
                        {
                                uint k;
                                for(k=300;k>0;k--);                               
                        }

void init()
                {
                                OSCCON  = 0b01110000;               // 4x PLL Is disabled,
                                                                //Internal Oscillator Frequency Select bits . 000x = 8MHz LF
                                                                //SCS<1:0>: System Clock Select bits. 1x = Internal oscillator block
                                TRISC=0XC0; //  IO                         
                                 TRISA=0XC0;  //out
                                 PORTA=0XC0;                                
                                         ABDOVF=0;
                                         RCIDL=0;
                                         SCKP=0;
                                         WUE=0;
                                         ABDEN=0;
                               
                                         SYNC=0;
                                         BRG16=0;
                                         SPBRG=51;
                                 //        TXSTA=0X24; //chuankou shineng
                                         TXSTA=0XA4;//内部震荡
                                         RCSTA=0X90;//lianxu
                                         RCIE=1;
                                 //        TXIE=1;
                                         GIE=1;
                                         PEIE=1;       
                                //        RCREG=0;  
                }
               
                               

void interrupt usart()
                                {
                                        if(RCIF==1)
                                                {
                                                RCIF=0;
                                                recdata=RCREG;
                                               
                                               TXREG=recdata;
                                  
                                                }
                               
                               
                                }


void main ()
                        {
                                init();

                                  while(1)
                                          {
                                
                                          switch(recdata)
                                                          {
                                                                  case 0X01:PORTA=0X01;break;
                                                                  case 0X02:PORTA=0X02;break;
                                                                  case 0X03:PORTA=0X04;break;
                                                                  case 0X04:PORTA=0X08;break;
                                                                  case 0X05:PORTA=0X10;break;
                                                                  case 0X06:PORTA=0X20;break;
                                                         
                                                          }
                                 
                                                 
                                                          delay();
                                                 
                         
                                          }
                       
                        }
                       

        接收,使用proteus仿真,串口助手发送数据,接收和响应 都正常,。 但是串口助手收不到回发的数据。 从寄存器里看TXREG已经赋值了的                       

出0入4汤圆

 楼主| 发表于 2013-4-16 14:45:39 | 显示全部楼层
现在烧写到硬件上,收发都有数据了。但是 返回值不正确。  比如发00 返回80

发01返回c0

出0入0汤圆

发表于 2013-5-4 12:21:28 | 显示全部楼层
波特率?

出0入0汤圆

发表于 2013-5-5 21:07:06 | 显示全部楼层
估计是波特率不对  

出0入0汤圆

发表于 2019-10-4 17:03:35 | 显示全部楼层
huarana 发表于 2013-4-16 14:45
现在烧写到硬件上,收发都有数据了。但是 返回值不正确。  比如发00 返回80

发01返回c0 ...

LZ这么多年了,肯定解决了吧,能告诉我怎么解决的吗?

出0入4汤圆

 楼主| 发表于 2019-10-8 08:51:12 | 显示全部楼层
wiisir 发表于 2019-10-4 17:03
LZ这么多年了,肯定解决了吧,能告诉我怎么解决的吗?

时间太久了,忘记了都。  好像就是波特率的问题。

出0入0汤圆

发表于 2019-10-8 15:20:44 | 显示全部楼层
huarana 发表于 2019-10-8 08:51
时间太久了,忘记了都。  好像就是波特率的问题。

谢谢回复。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 00:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表