数码之家

 找回密码
 立即注册
搜索
查看: 21721|回复: 70

[C51] 关于STC8的那点事,供爱好者参考

[复制链接]
发表于 2019-8-19 10:38:33 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近搞了个准备开源的VFD驱动板(板上有高通字库、DS3231、ESP8266模块,CH330N串口芯片),为了VFD爱好者方便使用(基本都只会51),单片机使用的是STC最新的STC8A8K64S4A12,这个应该是STC最高级型号了,淘宝价3.4元,价格超过了STM32F051C8T6 ,使用后,还是挺失望的。有几个问题,第一次加入的硬件I2C极为不稳定,因为STC8的I2C总线,实际上是不支持真正意义上的分频的,所以,根本无法获得一个准确的I2C 时钟频率,而且,I2C不支持上升时间、下降时间的调节(广为诟病的STM32 I2C问题,就是在使用中没有注意这两个,实际是没有问题的),导致I2C兼容性极差。表现出来的就是用硬件I2C驱动DS3231时,有时候能正确读出,有时不能,最后不得不用软件模拟,稳定可靠。ADC,慢速的读取问题不大(1HZ),高速读取时(33KHZ),读取的数据杂乱无章,再按照官方电路做了ADC电压参考,并严格隔离数字地和模拟地后依然没有改善,为了这个问题前后打板4次依然无果(STM32,随便搞下都很稳定),这个后续继续研究,网上也有人遇到同样问题。再说说输入捕获PAC,用这个功能做了换个NEC红外遥控解码,但是STC8的输入捕获,不支持单通道上升沿和下降沿的同时捕获,是不能准确获取高低电平准确时间的,幸好NEC编码是个不等时长的编码,只捕获两个下降沿计算总脉冲时长就行,影响不大。硬件SPI总线兼容性还不错,没有发现大问题。串口2使用注意下,如果同时使用ADC需要在ADC转换结束后,把ADC电源关掉,否则就串口2会影响ADC采样数据。在使用串口接收中断后,就不能用printf函数了,表现为卡死,自己编了个类似的函数,解决问题。号称的支持最高33MHZ的外部晶振,也不太稳定,在使用33MHZ的外部晶振时,经常程序无法下载,用24MHZ的内部时钟就没有问题。最后吐槽下下载方式,2019年了,还在使用20+年前的串口下载方式十分的不解,这种方式貌似成本最低,最适合DIY爱好者,但是对于一个开发者来说简直是噩梦,每次下载程序都要去开关下电源,虽然有自动下载器,其实很也不是很稳定,同是51内核的台湾新塘着使用NU-LINK下载,十分的方便。

https://www.mydigit.cn/forum.php?mod=viewthread&tid=72430

打赏

参与人数 3家元 +23 收起 理由
asklaibao + 5 STC真成了死太惨了,自作孽啊!.
杨雪飞 + 8 謝謝分享
家睦 + 10

查看全部打赏

发表于 2019-8-19 11:14:44 | 显示全部楼层
谢谢经验分享。。。。。
回复 支持 反对

使用道具 举报

发表于 2019-8-19 11:26:41 | 显示全部楼层
还是使用STM32F103或者STM32F401比较好,都是皮薄馅大简单可靠,并且,可以直接用STM枚举的USB设备,直接就可以下载程序了。或者,用8266的OTA升级程序。
回复 支持 反对

使用道具 举报

发表于 2019-8-19 11:32:21 | 显示全部楼层
下次切亚克力面板找我,免费打样,就不用让别人黑你了:lol:
回复 支持 反对

使用道具 举报

发表于 2019-8-19 13:43:58 来自手机浏览器 | 显示全部楼层
玩玩stm8吧!有惊喜…
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 14:43:22 | 显示全部楼层
触景情伤 发表于 2019-8-19 13:43
玩玩stm8吧!有惊喜…

其实我一直都是玩STM8和STM32的,第一次搞STC的MUC,感觉这个STC太不完善了。
回复 支持 反对

使用道具 举报

发表于 2019-8-19 15:36:03 | 显示全部楼层
I2C协议过于复杂,硬件I2C别说STC了,STM32也有问题的。
回复 支持 反对

使用道具 举报

发表于 2019-8-19 16:18:35 | 显示全部楼层
jpdd521 发表于 2019-8-19 11:32
下次切亚克力面板找我,免费打样,就不用让别人黑你了

好的,下次就找你了,记下了
回复 支持 反对

使用道具 举报

发表于 2019-8-19 16:19:16 | 显示全部楼层
jjbboox 发表于 2019-8-19 15:36
I2C协议过于复杂,硬件I2C别说STC了,STM32也有问题的。

别说stm32了,就是arm级的,也是会有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 16:59:44 | 显示全部楼层
thinkabout44 发表于 2019-8-19 16:19
别说stm32了,就是arm级的,也是会有问题

STM32就是ARM。STM32的I2C总线没有发现什么问题,有问题的多是没有设置好那些时间。比如用默认的参数去读写24CXX,基本失败了40%。
回复 支持 反对

使用道具 举报

发表于 2019-8-19 18:23:16 | 显示全部楼层
STC基本就是垃圾,如果便宜点还可以原谅。但是目前这个毒瘤在爱好者圈子占了几乎全部江山,你能咋办?
偏偏这么低的性价比还能卖出去,不倒闭。
Cortex-M系列的廉价品那个不比它好?

打赏

参与人数 1家元 +20 收起 理由
2545889167 + 20

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2019-8-20 00:36:30 | 显示全部楼层
自从会玩stm后 俺吧所有stc全扔了
一样的价钱 开发stc就是找罪受
回复 支持 反对

使用道具 举报

发表于 2019-8-20 10:07:28 | 显示全部楼层
只有STM32 这种垃圾的CPU 的IIC 才需要设置上升沿河下降沿的;
AVR ,ATMEL 的ARM , TI 的ARM LPC的ARM 的IIC 都不需要设置上升沿河下降沿;

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-20 11:32:20 | 显示全部楼层
mapleft 发表于 2019-8-20 10:07
只有STM32 这种垃圾的CPU 的IIC 才需要设置上升沿河下降沿的;
AVR ,ATMEL 的ARM , TI 的ARM LPC的ARM 的II ...

你这种说法真的不正确,每种芯片对时序要求都是不一样的,虽然大多数情况下,几乎不用设置也能用,但不排除个例。STM32的I2C总线,我也只是遇到再读写24CXX时需要设置,别的不设置也可以完美使用。看AT24CXX的手册就知道,它对数据建立时间、数据保持时间有最小要求,如果不设置就无法正确读出,这不是STM32的问题。
回复 支持 反对

使用道具 举报

发表于 2019-8-20 12:13:36 | 显示全部楼层
netbeetle 发表于 2019-8-20 11:32
你这种说法真的不正确,每种芯片对时序要求都是不一样的,虽然大多数情况下,几乎不用设置也能用,但不排 ...

设置个P ,我说的那些 CPU就没有这个上升下降沿的设置寄存器; 人家设置的芯片压根就不用设置;
人家不用设置上升沿, IIC 用得好好的; 你试过TI 的ARM 读 24C的EEROM会错么?

STM32  特别是 F1 系列, IIC 就是一坨屎, 这个你得承认
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-20 15:41:27 | 显示全部楼层
mapleft 发表于 2019-8-20 12:13
设置个P ,我说的那些 CPU就没有这个上升下降沿的设置寄存器; 人家设置的芯片压根就不用设置;
人家不用 ...

F1在设置好上升和下降时间后,可以完美的读写AT24CXX,而读取BH1750FVI、SHT20、SHT30这些都是可以默认参数读取的。对于24CXX确实兼容性有些差,但是设置好时序,并参照ST官方历程,加上判断I2C总线是否就绪,24CXX是否就绪判断后,就没有问题了。而读写ST之家的M24M01,完美的。
回复 支持 反对

使用道具 举报

发表于 2019-8-20 16:47:38 | 显示全部楼层
netbeetle 发表于 2019-8-20 15:41
F1在设置好上升和下降时间后,可以完美的读写AT24CXX,而读取BH1750FVI、SHT20、SHT30这些都是可以默认参 ...

STM对初学者来说门槛还是略高,不然门外汉就不会都从STC的51开始学了,STC有个几块钱包邮的USB转串口的下载器,一直插着就可以,它自己会在下载时断一下电,所以只需要点一下下载即可。

技术上的东西我就不太了解了,还没入门。但是觉得对于每个器件在使用的时候都需要对他的脾气有一定了解,之后才能够完美驾驭,不能因为印象就形成偏见,这样就会自己给自己设置一堵墙。比如你看见我,还没有深入了解,就认为我是一个比较烦的人,也就可能从此断了交往的可能。

新塘的的东西对于初学者的门槛似乎不低,下载器什么的好像价格都蛮高的,这些门槛较高的东西更是高级的玩家或者开发者,而STC手推车就像楼主所说给业余玩家或者用作业余DIY还是不错,至少几块钱就可以玩了。
回复 支持 2 反对 0

使用道具 举报

发表于 2019-8-20 18:13:25 | 显示全部楼层
捕获是指ccp的pca计数器?
CCAPPn :允许 PCA 模块 n 进行上升沿捕获
CCAPNn :允许 PCA 模块 n 进行下降沿捕获
上升下降可以同时啊
回复 支持 反对

使用道具 举报

发表于 2019-8-20 21:22:54 | 显示全部楼层
从STC8初版A版开始试用,一直到G版。虽然用得不多,但IIC硬件驱动OLED是正常的。ADC官方测试称是精度最好可达11位-11位半。
至于串口下载,可能是有人的习惯问题,但实际上是最适合51的。如果嫌重启不好或这种方式不好,我只能认为他是新手或对51的环境不了解! :):lol:

(314)
回复 支持 1 反对 0

使用道具 举报

发表于 2019-8-20 22:42:31 | 显示全部楼层
讲个笑话,工厂里面用STC开发产品。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-19 15:43 , Processed in 0.218401 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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