查看: 2987|回复: 5

[其他] 关于修改SCI通讯波特率

[复制链接]

该用户从未签到

3

主题

10

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2013-12-2 19:24:24 | 显示全部楼层 |阅读模式
我在程序中设定SCI2BDL == baudrate;然后把baudrate的值存放在flash中,跟pc机通讯,上位机通过发送特定的指令就擦写flash来修改baudrate的值来修改通讯波特率,为什么不成功呢。
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-12-3 09:00:00 | 显示全部楼层

回复:关于修改SCI通讯波特率

你要事先确认在没修改Flash保存的baudrate之前串口能不能正常使用,如果不能,你要检查串口初始化的代码,你可以参考官方示例代码中的UART.C文件;如果串口正常,要去检查Flash擦写是否成功,特别是波特率寄存器是否更新成功,Flash的操作要严格遵循RM手册的流程图,good luck!
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

10

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-12-3 11:24:02 | 显示全部楼层

回复:关于修改SCI通讯波特率

回复第 2 楼 于2013-12-03 09:00:00发表:
你要事先确认在没修改Flash保存的baudrate之前串口能不能正常使用,如果不能,你要检查串口初始化的代码,你可以参考官方示例代码中的UART.C文件;如果串口正常,要去检查Flash擦写是否成功,特别是波特率寄存器是否更新成功,Flash的操作要严格遵循RM手册的流程图,good luck!
没修改flash之前串口可以正常使用,flash擦写也是成功的,因为擦写后串口就无法正常通讯了,而且同样的flash擦写,我修改板地址是OK的。
就是不知道为何波特率寄存器更新不成功,或者说更新不正确,因为重新上电后的波特率既不是我修改flash前的,也不是我修改flash希望得到的。
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-12-3 13:25:04 | 显示全部楼层

回复:关于修改SCI通讯波特率

从你的描述看起来操作流程:先写到Flash,然后上电后读出来对应Flash地址的波特率值,然后写入到UARTx_BDH和UARTx_BDL。既然如此,你可以在Flash操作后读一下UARTx_BDH和UARTx_BDL看看
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-12-3 17:20:13 | 显示全部楼层

    RE:关于修改SCI通讯波特率

    应该是擦写的地址不对,FLASH是按照一个区域擦除的,那么你保存波特率的地址不能和程序使用地址在同一个区域。
    修改串口波特率以后,程序是否正常运行?可以加串口输出,如果串口波特率改掉,那么你也会收到乱码,确认串口是工作的。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    10

    帖子

    0

    新手上路

    Rank: 1

    积分
    0
    最后登录
    1970-1-1
     楼主| 发表于 2013-12-3 19:13:20 | 显示全部楼层

    回复:关于修改SCI通讯波特率

    回复第 5 楼 于2013-12-03 17:20:13发表:
    应该是擦写的地址不对,FLASH是按照一个区域擦除的,那么你保存波特率的地址不能和程序使用地址在同一个区域。
    修改串口波特率以后,程序是否正常运行?可以加串口输出,如果串口波特率改掉,那么你也会收到乱码,确认串口是工作的。 

    上电后串口输出第一次可以收到错乱的数据,后面就无法发送和接收了,地址和保存波特率的地址不是同一个区域。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 06:55 , Processed in 0.098702 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表