STM8S103外部时钟与串口通讯问题

[复制链接]
3048|4
 楼主| rudy0729 发表于 2013-9-18 09:44 | 显示全部楼层 |阅读模式
各位大侠你们好!  
今天调试串口通讯问题?出现以下问题!  
这个是我时钟配置:使用外部谐振器8M晶振
    CLK_ECKR=0x01;    //外部时钟使能打开
    CLK_SWCR=0x02;    //主时钟切换使能
    CLK_CKDIVR=0x03;   //时钟8分频后CPU时钟为1M
    CLK_SWR=0xB4;     //主时钟切换寄存器 选择HSE为主时钟源
    while (!(CLK_SWCR & 0x08));
    CLK_CSSR=0x01;     //时钟安全系统寄存器  

这个是程序串口配置:
  //波特率为 9600;8位数据;一个停止位;没有校验位;接收使能;
  UART1_BRR2=0x01;
  UART1_BRR1=0x34;
  UART1_CR3=0x00;
  UART1_CR2=0x2C;
  UART1_CR1=0x00;
  __enable_interrupt();


现在问题出现通讯的数据不对!      如果我时钟配置的时候不分频就(CLK_CKDIVR=0x00;   )就可以通讯数据正确!    请问资料上面写着是Fmaster/9600的!   我现在怎么去判别!  请指教啊! 等..........
feilusia 发表于 2013-9-18 10:02 | 显示全部楼层
时钟分频了,波特率就变了。那你另一端串口波特率也得变啊。
 楼主| rudy0729 发表于 2013-9-18 10:44 | 显示全部楼层
我现在修改了配置是这样的:
    /*配置8Mhz外部高速RC*/
    CLK_ECKR=0x01;    //外部时钟使能打开
    CLK_SWCR=0x02;    //主时钟切换使能
    CLK_SWR=0xB4;     //主时钟切换寄存器 选择HSE为主时钟源
    CLK_CKDIVR=0x03;  //时钟8分频
    while (!(CLK_SWCR & 0x08));
    CLK_CSSR=0x01;     //时钟安全系统寄存器  
    CLK_ICKR=0x00;
 楼主| rudy0729 发表于 2013-9-18 10:45 | 显示全部楼层
串口通讯可以通了;但是我不知道有没有使用了外部晶振了
 楼主| rudy0729 发表于 2013-9-18 10:46 | 显示全部楼层
rudy0729 发表于 2013-9-18 10:44
我现在修改了配置是这样的:
    /*配置8Mhz外部高速RC*/
    CLK_ECKR=0x01;    //外部时钟使能打开

我的波特率设置没有变化!
  //波特率为 9600;8位数据;一个停止位;没有校验位;接收使能;
  UART1_BRR2=0x01;
  UART1_BRR1=0x34;
  UART1_CR3=0x00;
  UART1_CR2=0x2C;
  UART1_CR1=0x00;
  __enable_interrupt();
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

33

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部