标题: 12T单片机代码移植到1T单片机上出错 [打印本页]

作者: dzc3458    时间: 2021-10-9 20:51
标题: 12T单片机代码移植到1T单片机上出错
最近买了个mfrc522做IC卡的感应,读取到卡片后通过串口发送卡片的ID,同时把p1.0置低电平。
本来在c52里面运行地好好的,后来我感觉c52io口太多,这么搞有点浪费,就买了个1T的stc15w408as,查了些资料,发现这个芯片可以用c52的代码,只需要改几个io口和延时就行,然后我改完了烧录测试却发现不能用,不仅不会置低电平,而且串口也不会发送数据了,但是mfrc522能感应到卡片,说明它是可以和单片机通信的,这是怎么回事呢(希望不是mfrc522的问题,不然就很麻烦了),是不是我代码移植的有问题

代码.zip

5.55 KB, 下载次数: 8


作者: 188610329    时间: 2021-10-9 21:12
你应该是,串口直接就没有用起来吧,

不幸的通知你,你必须重新学习STC15W408AS的手册,因为:
一, STC15W408AS 没有 T1 定时器, 而你的程序串口用的T1定时器。
二, STC15W408AS 的T2定时器,和普通C52有很大的区别,所以你不能按你C52的知识给串口使用 T2定时器,必须学习STC15W408AS 的方法。

建议: STC-ISP 里面的范例 STC15系列下面的 串口1使用T2定时器,你参考一下,修改你的程序。

P.S.  STC15W408AS 自带硬件 SPI,等你熟悉以后尝试用 硬件SPI 驱动 RC522 效果会更好,当然,这是后话。
作者: dzc3458    时间: 2021-10-9 23:06
188610329 发表于 2021-10-9 21:12
你应该是,串口直接就没有用起来吧,

不幸的通知你,你必须重新学习STC15W408AS的手册,因为:

谢谢了,不过我应该不是要重新学习那个手册,而是要开始学习
作者: 188610329    时间: 2021-10-10 14:22
dzc3458 发表于 2021-10-9 23:06
谢谢了,不过我应该不是要重新学习那个手册,而是要开始学习

不用谢。

由于,你之前在C52上,RC522都正常跑起来了,所以51单片机知识应该学的差不多了, 而STC15系列,属于姚氏增强型51,原理其实和51差不多,但是定义改了很多,所以我才用得“重新”,而不是“开始”这个词。
作者: weijoyer    时间: 2021-11-1 08:29
注意驱动代码的时序
作者: 郑汉松    时间: 2021-11-1 09:05
1,配置端口模式为准双向IO 2、
作者: 郑汉松    时间: 2021-11-1 09:06
1、配置端口模式为双向IO           2、用STC的烧录器,里面有波特率设置的,选择芯片为STC15系列,然后选你要的波特率,生成后把波特率的代码置换一下就行




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1