这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 串口数据发不出去,请高手们看看!

共3条 1/1 1 跳转至

串口数据发不出去,请高手们看看!

菜鸟
2008-12-20 09:48:04     打赏

1 我用的是30281f6芯片,64脚的,16M晶振,UART0口外接485芯片MAX1487(已将写使能脚置高电平),数据始终发不出去,程序在下面
2 我最初想用p6_0脚作为发送使能接到1487上,但用程序(crd_u0c0 = 1 ; pd6_0 = 1 ; p6_0 = 1; )无法使该脚变为高电平,而同样方法可以设置p10口,那里出的问题?

#include "sfr28.h"
void main(void)
{
 volatile unsigned int temp = 1;
 unsigned char u0c1_1;
 unsigned char u0c0_1;
 unsigned char u0mr_1;
 unsigned char u0brg_1;
 unsigned int  u0tb_1;


 prc2 = 1;
 pacr = 2;

  u0c0 = 0x01;
 u0c0_1 = u0c0;
    
 u0mr = 0x65;//8位数据,内部时钟,一个停止位,偶校验,允许校验,无反转。
 u0mr_1 = u0mr;

 u0c1 = 0x05;//发送控制
 u0c1_1 = u0c1;

 u0brg = 0x67;//16M晶振
 u0brg_1 = u0brg;

 while( 1 ){
   if( txept_u0c0 == 1 ){
    u0tb = temp;
   u0tb_1 = u0tb;
   temp++;
   }
 
  while( txept_u0c0 == 0 ){

   asm("nop");
  }

 }
}

波特率寄存器的值不变化,我设的波特率变量的值也不变化,是不是波特率没有设定啊,每次单片机复位后,PC上的串口精灵能收到一次数据'FE',以后什么也收不到了,程序有什么问题呢?
u0brg_1  H'00 '.'  { 0x0007d3 }  (unsigned char),
起初以为uotb没写进去,因为寄存器窗口一直显示 uotb 0181,而且u0tb_1一直随别的变量值变化,但停止时,u0tb_1的值是正确的,我估计u0tb的值是写进去了,
我是新手,找不到问题原因,请高手们给看看那里有问题?
要是方便给一个30281下C语言的串口收发代码,学习下,先谢谢了!




关键词: 串口     数据     发不     出去     高手     看看    

菜鸟
2008-12-22 09:32:59     打赏
2楼

你去看下波特率的熔断丝设置!


菜鸟
2008-12-29 17:06:38     打赏
3楼
波特率寄存器只能写不能读,你应该是看不到变化的
去瑞萨的网站下载一些应用笔记参考一下吧

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]