找回密码
 立即注册
楼主: ygyfy

冲哥视频 《STC32位8051单片机原理及应用》学习打卡【已送实验箱】

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-6 16:04:11 | 显示全部楼层
so*** 发表于 2024-6-6 15:56
烧写前可以检测一下型号。会同步单片机型号

是的,确实这样,只是因为我之前没有这样的操作,看到视频里面说,记录下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-6 16:22:48 | 显示全部楼层
第四集

其实,之前看的几集视频,笔记是真笔记,手写摘抄的,那么,就直接拍照上传记录吧,外加做实验的一点小记录,请忽略字写的丑


IMG_20240606_160024.jpg

IMG_20240606_160037.jpg

特殊功能寄存器(SFR)区域C语言代码的使用和定义方法
sfr.png

没有试验箱,前阵子申请了一块屠龙刀板,在此感谢华北区石经理!因为此板出厂led灯为3.2-3.5,2.0-2.7,所以就点亮2.0和3.2吧,其实一开始是写的3.0然后发现他被占用且没有灯,然后就改成3.2了。
代码截图
led代码截图png.png


点亮板子照片
IMG_20240606_155951.jpg

尴尬的是,第一次编译出错,发现sfr和sbit语句后面都没加分号
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-6 16:24:59 | 显示全部楼层
图片横着,拍照的时候竖着的,传上去后成横向了,不知道怎么旋转,在电脑里旋转看着正常,回复高级模式里面也看着正常,发出来就这样了,有懂得的指导下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:484
  • 最近打卡:2025-07-03 00:12:53
已绑定手机

19

主题

3233

回帖

5363

积分

论坛元老

积分
5363
发表于 2024-6-6 18:11:05 来自手机 | 显示全部楼层
芯片还自己补上去了啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-6 19:00:47 | 显示全部楼层
so*** 发表于 2024-6-6 18:11
芯片还自己补上去了啊

补焊了两个TJA1050及其周边几个小元件做can通讯实验
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-9 22:29:09 | 显示全部楼层
第四集下

我这个STC32G128手册跟视频的略有不同,章节是5.16 用户程序复位到系统区进行USB模式ISP下载的方法(不停电),参考stc32g128工具箱9.4版第76个例程。
comm文件夹里的文件也不一样,只有两个文件STC32G.H和STC32G.INC,所以复制的是这个试验箱文件夹里的src文件夹下面的文件。
comm文件下面的文件
1.png

STC32G试验箱9.4-DEMO-CODE-20230309 试验箱9.4\76-通过USB HID协议打印数据信息-可用于调试\src文件夹下面文件

3.png

按照视频教程进行编译完成后一堆警告
5.png

网上搜索
报错原因

这是程序中存在定义但未被调用的函数导致的警告;
Note:警告不会影响程序的编译,但如果出现这个,建议查看一下程序中有哪些函数代码会编译但其实实际上并未被调用;

实际上可以使用。

作业

  1. #include "src/stc.h"
  2. #include "src/usb.h"
  3. //sfr P3=0xB0;
  4. //sfr P2=0xA0;
  5. //sfr P3M0=0xB2;
  6. //sfr P3M1=0xB1;
  7. //sfr P2M0=0x96;
  8. //sfr P2M1=0x95;
  9. //sbit P20=P2^0;        //位地址声明,s小写,P大写
  10. //sbit P33=P3^3;
  11. void sys_init();
  12. //USB调试及复位所需定义
  13. char *USER_DEVICEDESC = NULL;
  14. char *USER_PRODUCTDESC = NULL;
  15. char *USER_STCISPCMD = "@STCISP#";                      //设置自动复位到ISP区的用户接口命令
  16. void main()
  17. {
  18. //        P3M0=0x00;        //设置为准双向口
  19. //        P3M1=0x00;
  20. //        P2M1=0x00;
  21. //        P2M0=0X00;
  22.        
  23.         sys_init();
  24.     usb_init();  //USB初始化
  25.     EA = 1;
  26.        
  27.         while(1)//无限循环
  28.         {
  29.                 P2=0;
  30.                 P33=0;
  31.                 P34=0;
  32.                 P35=0;
  33.         }
  34. }
  35. void sys_init()
  36. {
  37.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  38.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  39.     CKCON = 0; //提高访问XRAM速度
  40.     P0M1 = 0x00;   P0M0 = 0x00;
  41.     P1M1 = 0x00;   P1M0 = 0x00;
  42.     P2M1 = 0x00;   P2M0 = 0x00;
  43.     P3M1 = 0x00;   P3M0 = 0x00;
  44.     P4M1 = 0x00;   P4M0 = 0x00;
  45.     P5M1 = 0x00;   P5M0 = 0x00;
  46.     P6M1 = 0x00;   P6M0 = 0x00;
  47.     P7M1 = 0x00;   P7M0 = 0x00;
  48.    
  49.     //设置USB使用的时钟源
  50.     IRC48MCR = 0x80;    //使能内部48M高速IRC
  51.     while (!(IRC48MCR & 0x01));  //等待时钟稳定
  52. }
复制代码

因为我没有试验箱,用的是屠龙刀开发板,所以点亮的是3.3~3.5,2.0~2.7端口

2.jpg

添加函数

void sys_init()

{

    WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快

    EAXFR = 1; //扩展寄存器(XFR)访问使能

    CKCON = 0; //提高访问XRAM速度


    P0M1 = 0x00;   P0M0 = 0x00;

    P1M1 = 0x00;   P1M0 = 0x00;

    P2M1 = 0x00;   P2M0 = 0x00;

    P3M1 = 0x00;   P3M0 = 0x00;

    P4M1 = 0x00;   P4M0 = 0x00;

    P5M1 = 0x00;   P5M0 = 0x00;

    P6M1 = 0x00;   P6M0 = 0x00;

    P7M1 = 0x00;   P7M0 = 0x00;

   

    //设置USB使用的时钟源

    IRC48MCR = 0x80;    //使能内部48M高速IRC

    while (!(IRC48MCR & 0x01));  //等待时钟稳定

}

这段函数一般放在void main ()之前,否则应在void main ()之前写上void sys_init()以表示后面有这个函数,否则会出现void sys_init()未定义,因为函数执行是按照从上到下来的

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-10 05:26:29 | 显示全部楼层
本帖最后由 ygyfy 于 2024-6-10 05:29 编辑

实验照教程做,但是,如果,文件的版本不一样,比如,这个CDC实验,如果使用的LIB文件不同,就会产生错误,编译不通过。提示如下


Rebuild target 'Target 1'
compiling led.c...
linking...
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  usb_init
    MODULE:  .\Objects\led.obj (led)
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  usb_init
    MODULE:  .\Objects\led.obj (led)
    ADDRESS: FF00A7H
Program Size: data=8.0 edata+hdata=268 xdata=0 const=35 code=182

111.png

暂不明确原因所在,只是知道,用附件里的lib文件一般没事,用屠龙刀例程和试验箱里的lib文件就容易出问题,已知至少三种lib文件,文件大小,修改时间(原文件修改时间)都不同
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2024-09-12 20:44:49

2

主题

64

回帖

358

积分

中级会员

积分
358
发表于 2024-6-10 06:34:09 | 显示全部楼层
ygy*** 发表于 2024-6-10 05:26
实验照教程做,但是,如果,文件的版本不一样,比如,这个CDC实验,如果使用的LIB文件不同,就会产生错误, ...

加油啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:484
  • 最近打卡:2025-07-03 00:12:53
已绑定手机

19

主题

3233

回帖

5363

积分

论坛元老

积分
5363
发表于 2024-6-10 22:35:30 | 显示全部楼层
ygy*** 发表于 2024-6-10 05:26
实验照教程做,但是,如果,文件的版本不一样,比如,这个CDC实验,如果使用的LIB文件不同,就会产生错误, ...

用2个不同板的lib文件编译都没问题啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-01-30 03:33:01

2

主题

44

回帖

667

积分

高级会员

积分
667
发表于 2024-6-10 23:36:41 | 显示全部楼层
so*** 发表于 2024-6-10 22:35
用2个不同板的lib文件编译都没问题啊

我试过编译出问题的时候直接复制冲哥附件里的demo.c文件的内容(除了复制c文件的内容其余都不做改变,例如其他c文件内容,引用的文件,lib文件,这些都不变更)其余保持不变,也一样编译错误。但是如果,把冲哥的lib文件换进去,就没事。暂时没发现其他规律,发现后再发帖
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-3 10:22 , Processed in 0.128126 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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