[原创] STM8串口通信

zhaojun_xf   2012-9-5 13:32 楼主
对于STM8我想,大家都是奔它的价格去的。确实有不错的性价比,而且带有驱动库,支持ST-Link仿真功能。单就与51单片机进行比较,当然是有绝对的优势。不过我个人还是不喜欢它。

       不知道是为什么,我对STM32和STM8都没有太多的好感。最近有个项目,选择了STM8来开发,让我对STM8有了更多的认识。。。。。。。。。。。。。。

       1. 虽然在IAR下STM8也支持ST-Link仿真,但是,它并不支持全速运行下打断点,要想使用断点,必须先打好断点,才能点击运行,否则无法运行到断点,这样的仿真,真让人有些抱怨。这个是小问题,咱们可以克服,比较51还不支持断点仿真呢。

       2.本人开发的这个产品需要使用串口通信,使用的是中断接收,查询方式下发送,初始化串口,收发都正常了,一切OK,虽然不是那么的顺利,毕竟完成了。不过高兴不要太找了,问题慢慢出现了。做了一个样机后,需要还做一个样机。这时问题来了。同样的板子,同样的程序,可是串口只能发送,不能接收,根本不进串口中断,什么问题呢?经过分析大致有以下几点:
      A. 232芯片有问题;
      B. 232与STM8连接有问题;
      C. STM8串口有问题。
     通过实验,短接STM8的TXD和RXD,发现,PC可以正常收发,而已STM8也可以正常收发。也就是说,PC发送数据后经过232后可以正常返回,而STM8发送数据,经过它自己的接收脚也可以正常返回。通过上面的实验,应该说以上3个问题都测试了,没有问题。那就奇怪了,问题依旧,怎么办呢?

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

       虽然有着多年的开发经验,不过这种事情,真是头一回遇到。那么就在网络上搜索一下吧,发现很多人的有遇到这样的问题。可奇怪的是,同样的程序,同样的板子,有一台样机是正常的啊。难道是程序有问题?可这个程序在一台样机上可以正常工作啊。。。。

        网络搜索发现,有的网友说,官方的例程中,没有设置串口管脚。我再看看我的程序,发现设置了:GPIO_Init(UART_GPIO_PORT,(GPIO_Pin_TypeDef)(UART_TXD_PIN | UART_RXD_PIN), GPIO_MODE_OUT_PP_LOW_FAST);于是我把这局注释掉,再运行一下,一切正常。这让我感觉无比纳闷,端口配置反而有问题,这是头一次遇到。

通过这次是开发,我对STM8的感觉越来越差,说实话,处理价格,我不知道它有什么优点。太多的奇怪的问题,我对STM8实在无语。。。。。
我的博客

回复评论 (8)

回复 楼主zhaojun_xf 的帖子

学完51,原本打算学lpc1114,(主要是看了你的书)但是,感觉NXP关于发展M0好像很混乱,不知该学哪一款单片机来应对以后的工作?能不能给点建议
点赞  2013-7-16 19:59

回复 沙发季夏木槿 的帖子

对于ARM来说,其基本学习方法一致,只要你学会了一款,其他的很容易了。所以,你可以根据你自己的条件选择学习,尽量少走点弯路。

单片机只是一个工具,什么单片机之前的区别不过就是资源、管脚和寄存器等而已。学习只不过是了解芯片,最主要的还是要站在一个更高的高度。站在软件的层面学习,不同的单片机只是底层区别而已。
我的博客
点赞  2013-7-17 11:49
请问能发我一个stm8串口中断通信的程序例程吗    我在调试中断,进步了中断
点赞  2014-5-15 15:30
请问能发我一份stm8串口通信的程序例程吗,我在调试串口,进不了中断
点赞  2014-5-15 16:21
不知最后是什么原因?
谢谢。
点赞  2014-5-16 15:42
接收引脚设成GPIO_MODE_OUT_PP_LOW_FAST确定不会出问题??
点赞  2016-5-19 20:57
引用: okgogogogo 发表于 2016-5-19 20:57
接收引脚设成GPIO_MODE_OUT_PP_LOW_FAST确定不会出问题??

这个你试试不就知道了。
我的博客
点赞  2016-5-20 10:28
无论是哪一款MCU,CPU,ARM ,其实他们的原理都是一样的,如果不是项目需要就不要换平台,只有对某一个平台特别熟悉后才能做出优秀的产品
点赞  2016-5-21 08:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复