6489|21

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

总的用下来感觉STM32不怎么样,容易出错。 [复制链接]

                                 不知道怎么回事,比如说串口经常出问题,不稳定。同样的程序,在NXP上运行就很稳定,不会丢失数据。出现莫名奇妙的问题很多。现在正在一个一个得 解决
此帖出自stm32/stm8论坛

最新回复

                                   区别还是有的,只是区别不大而已   详情 回复 发表于 2009-7-14 10:07
点赞 关注
 

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

STM32的程序怎么可能在NXP的芯片上运行呢?

                                 至少2者的寄存器都不一样。
此帖出自stm32/stm8论坛
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

重新改一下 就可以的

                                  
此帖出自stm32/stm8论坛
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

4
 

这样发送可以吗?

    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){};
            USART_SendData(USART1,Encoder_High/256);
            while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){};
            USART_SendData(USART1,Encoder_High%256);
-------------------------------------------------------------
56000的速度,3米左右的对交线。现在,Encoder_High/256这个数据经常丢失,很严重。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 

56000的速度,3米左右的对交线???

请问用示波器观察在发送端数据是否正常送出?

56000的速度,3米左右的对交线?请把线路缩短,这么快的速度,3米太长了吧?
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 

不会吧以前NXP都是用115200的,6米左右的线的

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

97

帖子

0

TA的资源

一粒金砂(初级)

7
 

请对照一下2个芯片的端口驱动能力

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 

NXP和STM32串口发送机制是典型的不一样

正好借这个问题把我的心得介绍下:

NXP串口发送用的是类似51的机制,先 SBUF=XX;然后由这个写动作产生中断之后再发第二个。。。。由发送最后一个字节产生的中断时不再发送

STM32跟他有区别,准备好数据后,先使能发送中断,由此引发串口发送中断,进中断后先发第1个字节,等由发送第1个字节引发中断后再发送第2个字节。。。当全部字节发送完毕后禁能串口发送中断。

我刚开始也在这个上面迷糊了半天,明白这个机制之后就好了,凭这个并不能ASSERT STM32的优劣,LZ还是先改下软件吧
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(高级)

9
 

同意楼上的

ST的机制是先有发送空中断,再进中断发数据,再等发送空中断。。。

我用电子市场上随便买的串口线,跑115200和PC连,实测150K字节数据,没有丢数据。
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

10
 

谢谢!

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

11
 

这才是解决问题的办法和态度

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

12
 

真的有区别?

  真的有区别?
NXP串口发送,先 SBUF=XX;然后由这个写动作产生中断之后再发第二个。。。。由发送最后一个字节产生的中断时不再发送

STM32同样也可以这样做:准备好数据后,检查串口BUFFER空后发送第一个字节,然后使能发送中断,引发串口发送中断,进中断后发第2个字节,。。。当全部字节发送完毕后禁能串口发送中断。
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

13
 

糊涂了,还是看手册吧

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

14
 

很不错的比较

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

15
 

从其他芯片转过来,会有点不习惯。

                                 确实是好芯片呀。
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

16
 

用过44B0X的会记得.

那时候用44B0X发现其串口发送很爽,可以发送完毕触发中断,也可以发送寄存器空的时候触发中断.
ST其实也是这样,有两种发送中断可选的.
发送完中断,就像以前51那样,发送完成就产生一个中断.仅仅触发一次,
而发送寄存器空中断,则是在发送寄存器为空的时候就会有中断,只要是空,就不停有中断.

其实后者的机制好用一点,即发送寄存器空中断.至于为什么,只能自己去意会了
此帖出自stm32/stm8论坛
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(初级)

17
 

俺也凑个热闹,来篇博客

 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

18
 

应该没有区别

应该没有区别.

几乎所有的MCU都是BUFFER空进中断
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

19
 

没有区别 鉴定完毕!!!

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

20
 

STM32的USART在发送端和接收端除了移位寄存器,还有一个缓冲

发送端和接收端的缓冲器,可以保证在移位寄存器进行数据的发送和接收同时,软件能够在不干扰数据移位的情况下,读出和写入数据。

发送端和接收端的缓冲器可以理解为一个字节的FIFO。
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

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