你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

串口通信奇偶校验位问题

[复制链接]
sarah666 提问时间:2020-9-23 11:03 /
STM32F207的BootLoader串口通信数据格式为:一个起始位,8个数据位,偶校验,停止位。

问题描述:
1.STM32接收到“0x7F”后进入memory boot mode,这一步没问题。之后向BootLoader(BL)发送"0x00 0xFF",不论是否有校验位,BL都能正常工作。
当BL收到无校验位的数据“0x44 0xBB”时,回复NACK的概率较高(有时可以正常工作)。这个现象如何解释?

2.发送方使用的芯片无校验位,而STM32需要偶校验,该如何进行通讯?
收藏 1 评论7 发布时间:2020-9-23 11:03

举报

7个回答
sarah666 最优答案 回答时间:2020-9-25 09:54:43
发送方用LPC3250芯片,官方描述:The three 14-clock UARTs only support a the communications format of (8N1) 8-bit data word length, 1-stop bit, no parity, and no flow control.

只能配置8位通讯,无法配置出偶校验。有没有其他办法让LPC3250与STM32 BootLoader通讯?
陌路夕颜 回答时间:2020-9-24 09:26:00
工作这么多年,没见过谁用奇偶校验,而且还是bootloader。
回到你的问题,奇偶校验一般都是硬件做的,或许你的配置有问题,或者程序逻辑有问题。第二个问题,一般的做法都是把校验写在数据包中,用算法校验数据对不对,而不是用你需要的偶校验
回答时间:2020-9-24 10:05:38
ST的FLASHLOADER使用的就是偶校验,这个通过配置串口的属性就可以了。如果是上位机软件可以使用flashloader的动态库,如果是mcu,在配置mcu串口时,可以选择校验方式。
cooljwu 回答时间:2020-9-25 09:26:56
1进入BL应该检测数据“0x7F”同时检测校验位是否ERR;
2无校验方要选择9位通讯模式,人为计算生成第9位状态作为偶校验;
sarah666 回答时间:2020-9-25 09:58:38
发送方使用LPC3250芯片,官方描述:The three 14-clock UARTs only support a the communications format of (8N1) 8-bit data word length, 1-stop bit, no parity, and no flow control.

所以只能配置8位数据,无法计算出偶校验。有没有其他方法让LPC3250与STM32 BootLoader通讯?
butterflyspring 回答时间:2020-9-30 11:50:16
STM32的bootloader 是固化的内部程序,厂家规定了这个通讯需要偶校验,所以没法改变的。只能主设备那边想办法。主设备的UART不能设置奇偶校验也挺奇怪的,只能试着软件做串口了,波特率低点。
damiaa 回答时间:2020-10-14 11:33:08
都设置成一样的吧。LPC3250芯片那边配一下。按理不可能不能配置偶校验的。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版