5719|4

2057

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

【瑞萨电子MCU套件免费试用】+调试串口遇到问题 [复制链接]

调试的瑞萨这个芯片的串口真是各种坎坷,我使用的的是瑞萨官方提供的串口发送程序。使用这个配到的程序的PDF文档可以很顺利的进行软件的仿真。但是使用硬件的时候接收到的字符全是乱码,如下图:


官方串口的初始化实现的是:波特率设置为38400bps,8,1 UART发送完毕中断。代码如下
  1. void SAU_Init(void)
  2. {
  3.     SAU0EN = 1U;    /* supply SAU0 clock开启串口的时钟 */
  4.     NOP();
  5.     NOP();
  6.     NOP();
  7.     NOP();
  8.     SPS0 = _00_SAU_CK00_FCLK_0 | _00_SAU_CK01_FCLK_0;/* SPS0:串行时钟选择寄存器0*/
  9.        
  10.         /* UART0 initial setting */
  11.     ST0 |= _01_SAU_CH0_STOP_TRG_ON;    /* UART0 transmit disable ST0:串行通道停止寄存器0*/
  12.     STMK0 = 1U;    /* disable INTST0 interrupt */
  13.     STIF0 = 0U;    /* clear INTST0 interrupt flag */
  14.     SRMK0 = 1U;    /* disable INTSR0 interrupt */
  15.     SRIF0 = 0U;    /* clear INTSR0 interrupt flag */
  16.     SREMK0 = 1U;   /* disable INTSRE0 interrupt */
  17.     SREIF0 = 0U;   /* clear INTSRE0 interrupt flag */
  18.     /* Set INTST0 low priority 设置UART0发送接收中断的低优先级,优先级为3(最低)*/
  19.     STPR10 = 1U;
  20.     STPR00 = 1U;
  21.     SMR00L = _20_SAU_SMRMN_INITIALVALUE | _02_SAU_MODE_UART | _00_SAU_TRANSFER_END;/* SMR00L:串行模式寄存器00L */
  22.     SMR00H = _00_SAU_CLOCK_SELECT_CK00 | _00_SAU_TRIGGER_SOFTWARE;
  23.     SCR00L = _00_SAU_MSB | _10_SAU_STOP_1 | _07_SAU_LENGTH_8;/* SCR00L:串行通信运行设定寄存器00L,MSB 优先的输入/ 输出,停止位长度=1 位,8 位数据长度*/
  24.     SCR00H = _80_SAU_TRANSMISSION | _00_SAU_INTSRE_MASK | _00_SAU_PARITY_NONE;/* 只发送,UART 模式,禁止发生错误中断INTSRE0,不输出奇偶校验位。接收时没有奇偶校验。*/
  25.     SDR00H = _80_UART0_TRANSMIT_DIVISOR;/* SDR00H:串行数据寄存器00H,分频因子为130*/
  26.     SO0 |= _01_SAU_CH0_DATA_OUTPUT_1;/* SO0:串行输出寄存器0,串行数据的输出值为“1” */
  27.     SOL0 |= _00_SAU_CHANNEL0_NORMAL;    /* output level normal SOL0:串行输出电平寄存器0,将通信数据直接输出*/
  28.     SOE0 |= _01_SAU_CH0_OUTPUT_ENABLE;    /* enable UART0 output SOE0:串行输出允许寄存器0,允许输出 */
  29.     /* Set TXD0 pin */
  30.     P0 |= 0x01U;
  31.     PM0 &= 0xFEU;
  32. }
复制代码
上面的程序我对照官方的数据手册做了中文的注释。

瑞萨的这个芯片的最高支持的高速内部时钟振荡器为20mhz,具体的配置是在汇编的文件 中,代码如下:
  1. OPT CSEG OPT_BYTE
  2.         DB 0E0H
  3.         DB 0EBH
  4.         DB 0FBH ;5 MHz
  5.         DB 85H
  6.        
  7.         END
复制代码
上面的代码配置的单片机的主时钟为5MHZ.
在串口的初始化中的波特率配置是把主时钟130分频,得到的波特率应该是38461左右,在串口调试助手中设置波特率为38400,我明明发送的是一些字符,但是接收字符的时候都是乱码。


我所使用的工程如下: UART-TX.rar (63.07 KB, 下载次数: 52)
官方的讲解文档: R7F0C80212ESP UART发送示例程序.pdf (393.45 KB, 下载次数: 93)

最新回复

挺麻烦的   详情 回复 发表于 2019-8-7 23:47
点赞 关注

回复
举报

1297

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
有没有试过低点的波特率?

点评

只要是串口调试助手支持的波特率都试了一遍  详情 回复 发表于 2014-8-27 08:58
 
 

回复

2057

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
johnrey 发表于 2014-8-26 19:17
有没有试过低点的波特率?

只要是串口调试助手支持的波特率都试了一遍

点评

乱码一般应该问题都在波特率,而波特率的问题都在时钟。你不妨上示波器看下实际波特率是不是准的。  详情 回复 发表于 2014-8-27 13:37
 
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

4
 
IC爬虫 发表于 2014-8-27 08:58
只要是串口调试助手支持的波特率都试了一遍

乱码一般应该问题都在波特率,而波特率的问题都在时钟。你不妨上示波器看下实际波特率是不是准的。
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

5
 

挺麻烦的

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表