社区
驱动开发/核心开发
帖子详情
串口不能正确回显
脉清心爱
2010-03-16 01:25:00
我修改了一个移植到S3C2410目标板的bootloader。烧写到Flash,复位后,在初始化设置的波特率下,终端无回显,在其它波特率下有。请问高手这是什么原因,该如何解决?
...全文
1379
11
打赏
收藏
串口不能正确回显
我修改了一个移植到S3C2410目标板的bootloader。烧写到Flash,复位后,在初始化设置的波特率下,终端无回显,在其它波特率下有。请问高手这是什么原因,该如何解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kelibin
2010-03-19
打赏
举报
回复
其他波特率行是什么意思?是指比他高或低的都行?
sanyecao111
2010-03-19
打赏
举报
回复
学习了
gdtyy
2010-03-18
打赏
举报
回复
用这个工具调试,拦截一下数据看看到底是什么问题。
下载地址:
http://download.cnet.com/ComTrace/3000-2218_4-75156892.html?tag=mncol
感觉好别忘了给个review(评论),谢谢!
shine487
2010-03-18
打赏
举报
回复
学习了
arm9linuxpp
2010-03-18
打赏
举报
回复
那就是波特率不匹配啦
embedwang
2010-03-18
打赏
举报
回复
估计是PC端的串口配置有点问题。
脉清心爱
2010-03-16
打赏
举报
回复
多谢指导!!
juliet_88
2010-03-16
打赏
举报
回复
用串口反复发0x55(01010101), 在TXD端可看到方波, 通过示波器读出周期(倒数为频率), 加上起停位, 可算出波特率. 用示波器(探头X10), 可测量晶振的频率(用好的频率计测最好), MCU晶振的频率不准会导致波特率的误差大.
脉清心爱
2010-03-16
打赏
举报
回复
首先感谢你的答复!
不是学硬件的。不知道用示波器怎么测试?
改写的bootloader使用的波特率为115200,终端也设置为这个数。在bootloader stage1没用到串口,只是对IO口进行了初始化设置,对串口的初始化在stage2中进行,代码如下:
static int s3c2410_serial_init(serial_baud_t baud)
{
u32 divisor;
//UBRDIVn = (int)(PCLK / (bps x 16) ) –1
//or
//UBRDIVn = (int)(UCLK / (bps x 16) ) –1
//usually,PCLK=FCLK/4=MCLK(202.8MHz)/4,UCLK为USB所用频率
/* get correct divisor */
switch(baud) {
case baud_1200:
divisor = 2639;
break;
case baud_9600:
divisor = 329;
break;
case baud_19200:
divisor = 164;
break;
case baud_38400:
divisor = 81;
break;
case baud_57600:
divisor = 54;
break;
case baud_115200:
divisor = 26;
break;
default:
return -ERANGE;
}
s3c2410_serial_flush_output();
rUFCON0 = 0x0; //FIFO Control Register,disable FIFO
rULCON0 = 0x03; //data bits number,设置数据位8,无奇偶校验位,1位停止位
rUCON0 = 0x05; //Transmit/Receive mode:Interrupt,polling or DMA.Here,Interrupt or polling.Pulse Interrupt.Select PCLK as the UART baud rate.
rUBRDIV0 = divisor;//设置波特率
rUFCON1 = 0x0;
rULCON1 = 0x03;
rUCON1 = 0x05;
rUBRDIV1 = divisor;
for(divisor=0; divisor<100; divisor++);
return 0;
}
这里:baud_57600、baud_115200为枚举类型中的元素。
不知道这样做有什么问题,请高手们指点!
kyzf
2010-03-16
打赏
举报
回复
在初始化设置的波特率下,终端无回显,在其它波特率下有。
这说明你bootloader设置的波特率 可能有问题,不是PC对应的那些可配置的波特率。
也可能PC没有配置好,从而导致两端的波特率不一样。
楼主如果有条件,用示波器测试下就知道啦
单片机
串口
传输程序 (
回显
功能)
在本项目中,程序实现了
串口
的
回显
功能,即接收到的数据会通过
串口
原样返回,这有助于调试和验证通信链路的
正确
性。 首先,我们需要了解8051F005单片机的
串口
工作原理。8051内核的单片机具有内置的UART模块,可以...
stm32
串口
控制台+LCD
回显
在本项目中,我们利用STM32微控制器的串行通信接口(UART)和LCD显示屏,构建了一个具有命令解析功能的控制台,实现了
串口
输入的数据在LCD上同步显示的功能。 1. **STM32
串口
通信**:STM32系列MCU内置了多个UART...
STM32按键中断+
串口
回显
这有助于验证
串口
通信的
正确
性。 为了使程序运行,还需要设置全局中断使能,确保STM32可以响应中断请求。同时,中断处理完成后,记得清除中断标志,以便下次中断能够正常触发。 总的来说,"STM32按键中断+
串口
回显
...
S5P4418裸机系列教程之
串口
回显
本教程将深入探讨S5P4418处理器上的
串口
回显
功能,这是一个基础但实用的调试手段,通过
串口
0接收输入字符并实时
回显
,有助于开发者验证硬件连接及软件协议的
正确
性。
串口
通信,全称通用异步收发传输器(Universal ...
STM32F103C8T6学习-直接存储器访问(DMA)HAL库实战(DMA
串口
接收与
回显
(DMA-RX))(对比学习)
开发者在实现DMA
串口
接收与
回显
功能时,可以对比使用和不使用DMA时的代码差异、性能差异和资源消耗差异。这种对比可以加深对DMA工作原理及其优势的理解,帮助开发者在未来的项目中更好地利用DMA进行系统设计和性能...
驱动开发/核心开发
21,619
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章