6552|24

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STR710FZ2T6串口速率始终只有设定值的四分之一 [复制链接]

您好!
我用的是一块,别人送我的STR7的核心板.外部晶振4MHz.
使用的环境是KEIL 的MDK3.51版本。

现在运行KEIL自带的 KEIL/ARM/BOARDS/HITEX/ST_HELLO 程序,发现实际的波特率只有设定的1/4...

到底是哪里错了呢,请老大们赐教。


以下是main程序。


#include "71x_lib.h"

#define UART0_Rx_Pin (0x0001<<8)   /*  TQFP 64: pin N?63 , TQFP 144 pin N?143 */
#define UART0_Tx_Pin (0x0001<<9)   /*  TQFP 64: pin N?64 , TQFP 144 pin N?144 */

#define UART1_Rx_Pin (0x0001<<10)  /*  TQFP 64: pin N?1  , TQFP 144 pin N?1   */
#define UART1_Tx_Pin (0x0001<<11)  /*  TQFP 64: pin N?2  , TQFP 144 pin N?3   */

#define UART2_Rx_Pin (0x0001<<13)  /*  TQFP 64: pin N?5  , TQFP 144 pin N?9   */
#define UART2_Tx_Pin (0x0001<<14)  /*  TQFP 64: pin N?6  , TQFP 144 pin N?10  */

#define UART3_Rx_Pin (0x0001<<1)   /*  TQFP 64: pin N?52 , TQFP 144 pin N?123 */
#define UART3_Tx_Pin (0x0001<<0)   /*  TQFP 64: pin N?53 , TQFP 144 pin N?124 */

#define Use_UART3
//#define Use_UART1
//#define Use_UART2
//#define Use_UART3

   #ifdef Use_UART0
     #define  UARTX  UART0
     #define  UARTX_Rx_Pin  UART0_Rx_Pin
     #define  UARTX_Tx_Pin  UART0_Tx_Pin
     #define  UARTX_Periph  UART0_Periph
   #endif /* Use_UART0 */

   #ifdef Use_UART1
     #define  UARTX  UART1
     #define  UARTX_Rx_Pin  UART1_Rx_Pin
     #define  UARTX_Tx_Pin  UART1_Tx_Pin
     #define  UARTX_Periph  UART1_Periph
   #endif /* Use_UART1 */

   #ifdef Use_UART2
     #define  UARTX  UART2
     #define  UARTX_Rx_Pin  UART2_Rx_Pin
     #define  UARTX_Tx_Pin  UART2_Tx_Pin
     #define  UARTX_Periph  UART2_Periph
   #endif /* Use_UART2 */

   #ifdef Use_UART3
     #define  UARTX  UART3
     #define  UARTX_Rx_Pin  UART3_Rx_Pin
     #define  UARTX_Tx_Pin  UART3_Tx_Pin
     #define  UARTX_Periph  UART3_Periph
   #endif /* Use_UART3 */


u16 i;
u16 UARTStatus;
u8 bBuffer[4] = {'t','e','s','t'};
/* Example 1 */
int main(void)
{
  #ifdef DEBUG
    debug();
  #endif

/* UART configuration ---------------------------------------------------------- */
   
    /*  Configure the GPIO pins as alternate function push pull */
   GPIO_Config(GPIO0,UARTX_Tx_Pin, GPIO_AF_PP);
    /*  Configure the GPIO pins as Input Tristate CMOS */
   GPIO_Config(GPIO0,UARTX_Rx_Pin, GPIO_IN_TRI_CMOS);

/*  Configure the UART X --------------------------------------------------------*/
    /*  Turn UARTX on */
   UART_OnOffConfig(UARTX, ENABLE);

    /*  Disable FIFOs */
   UART_FifoConfig (UARTX, DISABLE);

    /*  Reset the UART_RxFIFO */
   UART_FifoReset(UARTX, UART_RxFIFO);

    /*  Reset the UART_TxFIFO */
   UART_FifoReset(UARTX, UART_TxFIFO);

    /*  Disable Loop Back */
   UART_LoopBackConfig(UARTX, DISABLE);
  
    /* Configure the UARTX as following:
      - Baudrate = 9600 Bps
      - No parity
      - 8 data bits
      - 1 stop bit */
   UART_Config(UARTX, 9600, UART_NO_PARITY, UART_1_StopBits, UARTM_8D);
   
    /*  Enable Rx */
   UART_RxConfig(UARTX, ENABLE);

  while(1)
  {
   for(i=0; i<4; i++)
     UART_ByteSend(UARTX,(u8 *)&bBuffer);


   }
}
此帖出自stm32/stm8论坛

最新回复

                                 我是新生,以后多多指教   详情 回复 发表于 2007-10-30 07:52
点赞 关注
 

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

看看你的71x_conf.h文件

#ifndef __71x_CONF_H
#define __71x_CONF_H


/* Comment the line below to put the library in release mode */

#define RCCU_Main_Osc 0x16000000
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这里的0x16000000改为0x4000000了没有?

/* Comment the lines below corresponding to unwanted peripherals */
//#define _ADC12

//#define _APB
//#define _APB1
//#define _APB2

//#define _BSPI
//#define _BSPI0
//#define _BSPI1

//#define _CAN

//#define _EIC

//#define _EMI

//#define _FLASH

#define _GPIO
#define _GPIO0
#define _GPIO1
#define _GPIO2

#define _I2C
#define _I2C0
#define _I2C1

#define _PCU

#define _RCCU

//#define _RTC

//#define _TIM
//#define _TIM0
//#define _TIM1
//#define _TIM2
//#define _TIM3

//#define _UART
//#define _UART0
//#define _UART1
//#define _UART2
//#define _UART3

//#define _USB

//#define _WDG

//#define _XTI


//#define _IRQVectors


#endif /* __71x_CONF_H */
此帖出自stm32/stm8论坛
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

确实没有设置为4000000

                                 但,无论是改为0x4000000还是4000000,,,串口速率仍旧是1/4....困惑ING...谢谢各位老大
此帖出自stm32/stm8论坛
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 

建议:删除所有生成的中间文件,重新编译链接项目文件

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

5
 

还是不行呢.

我重新从C盘的KEIL安装目录里,拷贝出了整个工程(之前我没有直接在这里修改源程序)

并且照前边两位说的,删除了所有中间文件。..但问题还是没解决啊.

还有,我在仿真里边,让程序 "RUN"起来之后,截到如下的图...
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 

这块板子之前有BOOT,通信都正常啊

这块板子,送给我的时候,是有BOOT的。通信都正常。

而且我用ADS编译的文件也正常跑起来了。


现在买了个ULINK,,,就把BOOT擦掉了。没想到串口不正常。...是什么原因呢
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 

检测option

                                 见图
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 

"4.0"MHz这个也是很早就设置好了

"4.0"MHz这个也是很早就设置好了...
也是不行的。


还有,稍微有点不放心的是,,,Device项里,,,没有选具体器件...

例程抓过来就用了。


老大们...谢谢..

到底是啥问题啊55555555555
此帖出自stm32/stm8论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

9
 

还是不行,第几个不眠夜拉

                                 老大们,帮帮忙吧。。。
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

10
 

我不大会用KEIL 的MDK

因为没有license,我一直没法使用KEIL 的MDK,而且16k的版本不够用,所以一直没有去使用它。
你的问题仅凭你提供的信息可能没法解决,你能否将你的项目整个打包放上来?
此帖出自stm32/stm8论坛
 
 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

11
 

应该是要在初始化的时候设置一下时钟

在初始化部分应该设置主频率的分频和倍频,

现在一般都是直接用库编程,而库缺省是用16M的频率,虽然改了源程序的主时钟频率,但是没有重新编译库的话,还是用16M的频率
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

12
 

恩,谢谢

                                 这两天在打杂,以上方法等我周末再试验。有结果给大家汇报。谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

13
 

这会总算可以干点正事

11点刚把手上的杂活干完,可以整整正事了。..

发现,自己怎么折腾都不行.

还是把工程打包发上来吧~~~

各位老大,帮忙吧~

此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

14
 

士大夫

                                 士大夫
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 

按时地方

                                 广泛
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

16
 

你以为驱动个串口那么重要么

我是在学ARM没错。
这个串口驱动不驱动起来,只是个过程。我并不重视结果的。
我的目标很明确,在这个探寻的过程中,可以逐步学会这个东西。串口不正常说明设置有问题。在这个基础上作再多也没意义。

而且这个是预研,不会有那么多精力投入的。

此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

17
 

而且我相信,有这个问题的不止我一个

而且我相信,有这个问题的不止我一个.


这些资料留在这里,还会对其他人有用的。还有,你的思维方式...
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

18
 

依然无音信

                                 依然无音信哦~~~~~~~~
此帖出自stm32/stm8论坛
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(初级)

19
 

你最好不要用Keil自带的库

最好使用产生那个库的源文件去开发。
问题还是这个造成的:
#define RCCU_Main_Osc 0x16000000
Keil编译好的库中使用了RCCU_Main_Osc,而这个值就是0x16000000,在外面改不了。除非你用的晶振是16M。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

20
 

19楼说的有道理,LZ的问题解决了吗?

                                  
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表