对于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实在无语。。。。。
回复 楼主zhaojun_xf 的帖子
学完51,原本打算学lpc1114,(主要是看了你的书)但是,感觉NXP关于发展M0好像很混乱,不知该学哪一款单片机来应对以后的工作?能不能给点建议
回复 沙发季夏木槿 的帖子
对于ARM来说,其基本学习方法一致,只要你学会了一款,其他的很容易了。所以,你可以根据你自己的条件选择学习,尽量少走点弯路。
单片机只是一个工具,什么单片机之前的区别不过就是资源、管脚和寄存器等而已。学习只不过是了解芯片,最主要的还是要站在一个更高的高度。站在软件的层面学习,不同的单片机只是底层区别而已。
请问能发我一个stm8串口中断通信的程序例程吗 我在调试中断,进步了中断
请问能发我一份stm8串口通信的程序例程吗,我在调试串口,进不了中断
接收引脚设成GPIO_MODE_OUT_PP_LOW_FAST确定不会出问题??
无论是哪一款MCU,CPU,ARM ,其实他们的原理都是一样的,如果不是项目需要就不要换平台,只有对某一个平台特别熟悉后才能做出优秀的产品