梦里水乡 发表于 2023-2-18 20:34:12

STC8A8K64S4A12工程代码烧写到STC8A8K64D4单片机为何不工作

之前写的STC8A8K64S4A12单片机工程代码(keil4写)烧写到STC8A8K64D4单片机为何不工作,我比较了两个单片机的管脚配置,可以通用;手册中的注意事项我也看了,感觉代码不需要改动,但是就是板子不工作。有人遇到这两个单片机的替换吗,谢谢!不想一一去比对了,有哪些注意的地方,直接分享下,谢谢!

zhp 发表于 2023-2-18 21:10:50



STC8A8K64D4取代STC8A8K64S4A12的注意事项
请参考STC8A8K64D4手册的的附录V
特别注意复位电平是相反的,STC8A8K64S4A12是高电平复位,STC8A8K64D4是低电平复位


梁工 发表于 2023-2-18 21:24:16

只要对应看一下代换注意事项那几点,别的都不用修改,STC8A8K64D4就是STC8A8K64S4A12的升级版。

梦里水乡 发表于 2023-2-21 20:12:36

梁工 发表于 2023-2-18 21:24
只要对应看一下代换注意事项那几点,别的都不用修改,STC8A8K64D4就是STC8A8K64S4A12的升级版。 ...

P_SW2= 0x80;                        //外设端口切换控制器(P_SW2): [|EAXFR|_|I2CS(1:0)|.|CMPO_S|S4_S|S3_S|S2_S|]
                                          //访问XDATA区域的扩展SFR: "EAXFR=1"
      PWMCKS = 0x00;                        //PWMCKS: [|_|_|_|SELT2|.|PWM_PS(3:0)|]; (PWM时钟=SYSCLK)
      PWMC   = 0x4000;                      //设置PWM周期为4000H个PWM时钟
      PWM3T1 = 0x0200;                      //计数值为200H处输出低电平
      PWM3T2 = 0x3300;                      //计数值为3300H处输出高电平
      PWM3CR = 0x80;                        //使能PWM3输出
      P_SW2= 0x00;                        //关闭XDATA区域的扩展SFR: "EAXFR=0"
      PWMCR= 0x80;                        //启动PWM模块

同样的44脚封装的,这段代码在D4中无法输出PWM3(P2.3),但是在A12中可以实现PWM3输出,这是为何,是不是按照注意事项我没配置对,但是按照D4给的例程序,我没找到错误。求解?

梦里水乡 发表于 2023-2-21 22:12:37

梦里水乡 发表于 2023-2-21 20:12
P_SW2= 0x80;                        //外设端口切换控制器(P_SW2): [|EAXFR|_|I2CS(1:0)|.|CMPO_S|S ...

PWM3地址A12和D4不一样,这个在软件ISP的例程中也为更新

梁工 发表于 2023-2-21 23:59:21

请直接下载HEX文件测试,示波器观察PWM波。


梦里水乡 发表于 2023-2-22 21:01:18

梁工 发表于 2023-2-21 23:59
请直接下载HEX文件测试,示波器观察PWM波。

太感谢了,真找D4头文件尼,昨天我才发现PWM3CR两个地址不一样,唉,谢谢,良心菜
页: [1]
查看完整版本: STC8A8K64S4A12工程代码烧写到STC8A8K64D4单片机为何不工作