找回密码
 立即注册
查看: 623|回复: 3

用布丁橘长大佬的一个led共阳显示都在keil上debug成功了结果烧到箱子里还是没结果

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-07-01 08:23:37

32

主题

149

回帖

1189

积分

金牌会员

积分
1189
发表于 2024-1-24 14:34:16 | 显示全部楼层 |阅读模式

9.4版stc32试验箱。
把试验箱的p6流水灯代码烧进去,发现是可以流水的。
于是对比试验箱的代码和我修改的代码。
都快一致了。用keil的swd仿真,将P6加入到watch里,发现P6都已经可以编程FE,FD了。按理说可以亮了。
结果还是烧进去还是不亮。

  1. #include <STC32G.H>
  2. #include "stdio.h"
  3. #include "intrins.h"
  4. //定义主频35Mhz
  5. #define MAIN_Fosc 35000000UL
  6. #define ON 0
  7. #define OFF 1
  8. typedef unsigned char u8;
  9. typedef unsigned int u16;
  10. typedef unsigned long int u32;
  11. //==========================================================================
  12. /*************  本地常量声明    **************/
  13. /*************  IO口定义    **************/
  14. /*************  本地变量声明    **************/
  15. u8 i=0;
  16. u8 ledIndex;
  17. u8 code Led_Code[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  18. /*************  本地函数声明    **************/
  19. void delay_ms(u16 ms);
  20. /****************  外部函数声明和外部变量声明 *****************/
  21. /******************** 主函数 **************************/
  22. void main()
  23. {
  24. //u8 Led_Code[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
  25.         WTST=0;//设置等待时间为0个时钟,cpu速度最快
  26.          EAXFR = 1; //扩展寄存器(XFR)访问使能
  27.     CKCON = 0; //提高访问XRAM速度
  28.         P2M1=0x00;
  29.         P2M0=0x00;//设置为准双向口模式
  30.         P6M1 = 0xff;
  31.         P6M0 = 0xff;   //设置为漏极开路(实验箱加了上拉电阻到3.3V)
  32.         while(1){
  33.                 for(i=0;i<8;i++){
  34.                         //P6=Led_Code[i];
  35.                         P6 = ~Led_Code[i];
  36.                         delay_ms(300);
  37.                 }
  38.                 for(i=1;i<7;i++){
  39.                         P6 = ~Led_Code[i];
  40.                         delay_ms(300);
  41.                 }
  42.         }
  43. }
  44. //简单延时函数,自适应主频,1毫秒*ms
  45. void delay_ms(u16 ms){
  46.         u16 i;
  47.         do{
  48.                 i=MAIN_Fosc/6000;
  49.                 while(--i);
  50.         }while(--ms);
  51. }       
复制代码


main.c

1.6 KB, 下载次数: 50

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-07-01 08:23:37

32

主题

149

回帖

1189

积分

金牌会员

积分
1189
发表于 2024-1-24 15:37:33 | 显示全部楼层
感谢冲哥指点,我加了
P40 = 0;                //LED Power On

但是。依旧是试验箱的八个流水灯不亮。
不过我发现debug时候,设置断点到 P6 = ~Led_Code[i];,
运行到断点,然后按F10,
每按一次F10,link1D上的灯闪一次。
难道程序烧写进入了link1D去了?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-07-01 08:23:37

32

主题

149

回帖

1189

积分

金牌会员

积分
1189
发表于 2024-1-24 16:08:43 | 显示全部楼层
感谢 冲哥以及 飞哥-KCER001。

在更新了link1D固件后,增加了关于P4的设置

  1. P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
  2.         P40 = 0;                //LED Power On
复制代码


终于看到了流水灯。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-02-25 19:02:50

13

主题

198

回帖

1175

积分

金牌会员

积分
1175
发表于 2024-1-25 13:38:28 | 显示全部楼层
yzhk*** 发表于 2024-1-24 15:37
感谢冲哥指点,我加了
P40 = 0;                //LED Power On

Link1D亮的这个灯好像是串口通信的灯
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-1 23:31 , Processed in 0.120037 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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