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

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

[复制链接]
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    7

    主题

    15

    回帖

    145

    积分

    注册会员

    积分
    145
    发表于 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, 下载次数: 4

    回复 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    7

    主题

    15

    回帖

    145

    积分

    注册会员

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    7

    主题

    15

    回帖

    145

    积分

    注册会员

    积分
    145
     楼主| 发表于 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
    复制代码


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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:45
  • 签到天数: 83 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    519

    积分

    高级会员

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 03:43 , Processed in 0.075439 second(s), 43 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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