找回密码
 立即注册
查看: 402|回复: 7

STC32学习日记

[复制链接]
  • TA的每日心情
    慵懒
    2024-4-16 19:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    1

    主题

    32

    回帖

    315

    积分

    中级会员

    积分
    315
    发表于 2024-1-23 22:37:39 | 显示全部楼层 |阅读模式
    大概是2023年12月份,也就是上个月,
    无意中在B站刷到有UP主分享的梁工基于STC32开发的声卡,
    由于我正在尝试制作蓝牙音箱,正好也有制作声卡的想法,进而受到吸引。
    根据B站视频的线索,以“stc 喀秋莎 声卡”为关键字搜到本论坛。

    实际我还有一个吃灰的STC89C52的实验箱,普中的,查记录购于2021年,
    当时在B站学习“江协科技”的STC视频时购入的。这个芯片实在太古老了,
    感觉它的资源严重脱离现实,印象中我学到中断和寄存器的时候我就放弃了,
    另一个原因是太难,学得很吃力。
    1706017767955.jpg
    1706017767931.jpg

    我也很难理解这些培训机构为啥为以最古老的STC89C52作为教材,现在看来,如果不是STC发展出STC32,并且大力推广学习,我估计各种机构会把STC89C52再用10年。
    无标题.png

    目前我对硬件电路、模拟电路的知识略有了解,但对单片机编程是空白,在一些开源项目中照搬别人的开源程序,深感受限。

    根据本论坛的视频,我首选了何宾老师的《STC单片机原理及实战教程》,计划学完之后转入CAN,符合自己的行业需求。

    目前学到第9集,感觉学得粗糙,很多没有深入理解,后面估计需要至少再看一遍,总结笔记。总结的过程就是消化的过程。

    在此留下记录,敦促自己勤加学习,实现MCU编程自由的愿望。






    回复 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-16 19:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    1

    主题

    32

    回帖

    315

    积分

    中级会员

    积分
    315
     楼主| 发表于 2024-1-23 22:42:15 | 显示全部楼层
    从最古老的8位STC89C52到最新的32位STC32,感觉跨越了一个世纪。
    在32位MCU已经普及的今天,感觉还是来得太迟了。

    虽迟但到。

    1706017767912.jpg



    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    5 小时前
  • 签到天数: 177 天

    [LV.7]常住居民III

    12

    主题

    353

    回帖

    1174

    积分

    金牌会员

    积分
    1174
    发表于 2024-1-24 08:11:00 | 显示全部楼层
    厉害,STM32的高手
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 57 天

    [LV.5]常住居民I

    0

    主题

    76

    回帖

    86

    积分

    注册会员

    积分
    86
    QQ
    发表于 2024-1-24 08:22:22 | 显示全部楼层
    大哥,看你的标题是走错地方的吧????
    我想用STC32做个感应加热器的控制核心,加油~!!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    0

    主题

    405

    回帖

    490

    积分

    中级会员

    积分
    490
    发表于 2024-1-24 09:07:14 | 显示全部楼层
    改一下标题吧,咱们是STC
    靡不有初,鲜克有终
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-16 19:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    1

    主题

    32

    回帖

    315

    积分

    中级会员

    积分
    315
     楼主| 发表于 2024-1-24 11:02:53 来自手机 | 显示全部楼层
    一字之差,差之千里😂,我回头改了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-16 19:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    1

    主题

    32

    回帖

    315

    积分

    中级会员

    积分
    315
     楼主| 发表于 2024-1-24 19:53:50 | 显示全部楼层
    本帖最后由 zanfi 于 2024-2-7 22:41 编辑

    第1集
    单片机设计导论

    单片机=单个集成电路芯片上的小型计算机,主要面向嵌入式应用。

    指令集架构(ISA)与CPU
    我理解是:
    指令集架构是一种规范或者协议,是一种理论或者纸面的东西;
    CPU(微架构)是基于指令集架构设计的物理实现的产品;

    SRAM:静态随机访问存储器,是一种易失性存储器,断电数据会丢失→理解为内存
    Flash:用于保持程序代码,非易失性存储器→理解为硬盘

    UART(Universal Asynchronous Receiver/Transmitter):通用串行收发器,以穿行放上发生和接受数据的外部设备(外设)
    GPIO(General Purpose Input&Output):通用输入输出,外设
    定时器(Timer):为MCU提供定时和计数功能,为嵌入式操作系统提供“嘀嗒”时钟,外设
    中断控制器(Interrupt Controller):MCU的最基本功能单元。为MCU提供处理内部和外部事件的能力,使其最最高效和最快的响应速度处理内部和外部事件。
    EMIF(External Memory Interface):提供连接片外SRAM芯片的能力。片外SRAM成本高,非必要不采用。
    ADC(Analog-to-Digital Converter):模数转换
    DAC(Digital-to-Analog Converter):数模转换

    低功耗模式:
    间歇工作模式、休眠模式、冬眠模式

    SoC(System on Chip):片上系统,高度集成CPU、SRAM、Flash和外设的MCU芯片


    第2集
    处理器核的指令集类型:
    1.MIPS:MIPS公司,RISC(精简指令集)
    2.ARM:ARM公司,RISC
    3.MCS-51(8051):Intel公司,CISC(复杂指令集)。8位算术逻辑单元、8位数据总线和8位寄存器。
      MCS-251(80251):Intel公司,CISC

    MCS-51包含111条指令集,其中有49条单字节指令,46条双字节指令,16条三字节指令,称之为复杂指令集(CISC)。

    核心区别:
    ·CISC的典型特点就是具有可变的指令集长度,不但允许在寄存器上执行算术和逻辑运算,并且允许在存储器上执行算术和逻辑运算。
    ·RISC指令集长度固定,只能在寄存器上执行算术和逻辑运算,不允许在存储器上执行算术和逻辑运算。


    MCS-251:
    ·片内提供了24位线性寻址能力,可寻址高达16MB的存储空间
    ·可通过字节、字和双字方式访问处理器核内的存储器
    ·用于加速获取外部指令的页面模式
    ·指令通道采用了流水线技术
    ·丰富的指令集包括16和32位算术和逻辑指令

    MCS-251在MCS-51基础上进行了扩展,包括新的操作、寻址模式和操作数。许多指令可以对8/16/32位操作数进行操作。
    MCS-251兼容MCS-51,MCS-51编写的代码不需要任何修改就可以运行在MCS-251上。

    Keil C251:
    可将STC32G系列单片机配置位二进制模式(binary mode)或源模式(source mode)
    两种模式口可以执行所有MCS-51和所有MCS-251指令,但
    源模式对MCS-251指令更高效,二进制模式对MCS-51更高效
    二进制模式下,8051单片机的目标代码无需重新编译即可在STC32G系列单片机运行,该模式是对基于8051单片机开发的代码进行兼容。
    无标题.png



    第3集
    尽管MCS251指令集是32位,但Intel自己的80251微架构内部用8位的数据总线实现32位操作(仍可认为80251是32位芯片)。
    1.png

    2.png

    3.PNG

    分层结构:
    从底层到顶层,指令集→汇编语言→机器指令→高级语言

    单片机性能评价,以示例代码为例:
    1.时钟周期数:stc32g是stc15/stc8的1/3
    2.调用指令条数:stc32g是stc15/stc8的1/2
    3.指令总长度:指令总长度缩短,即存储容量stc32g是stc15/stc8的80%


    第4集
    STC公司简介
    STC产品发展历史
    无标题2.PNG

    无标题3.PNG

    ISP:在系统编程,将本地固化程序的方式
    IAP:在应用编程,单片机处于使用状态时固化程序的方式。
    IAP的典型实现方式,将存储空间划分为两个空间。运行其中一个空间的程序,更新另一个空间的程序,更新完切换。

    STC32G系列单片机功能简介
    内核:32位,100%兼容MCS-251 ISA。比传统8051快70倍。
    支持在线仿真/调试功能
    MDU32,硬件32位乘除法器
    工作电压:1.9~5.5V
    工作温度:-40~85℃,可使用内部晶振(最高36MHz)和外部晶振
    工作温度:-40~125℃,高于85℃需要使用外部晶振,且需要控制频率低于24MHz
    Flash:最大128K
    支持用户配置EEPROM
    支持USB和串口下载
    支持硬件SWD仿真
    SRAM,共12K:4K内部SRAM(edata)+8K内部扩展RAM(xdata)
    中断:支持49个中断源。所有I/O口均支持中断。
    支持4个中断优先级
    数字外设:
    5个16位定时器
    2个高速同步/异步串口
    2个高速异步串口
    2组高级PWM
    3组硬件SPI
    I2C
    ICE
    RTC
    USB,兼容USB2.0、USB1.1
    CAN,两个独立的CAN2.0控制单元
    LIN
    LCD驱动模块
    DMA,直接存储器访问,无需内部CPU干预
    硬件数字ID,支持32字节

    模拟外设:
    超高速ADC,12位高精度15通道
    比较器
    最多60个GPIO
    所有GPIO均支持4种模式:准双向口模式,强推挽模式,开漏输出模式,高阻输出模式
    除P3.0和P3.1外,其余IO口上电后默认高阻输入模式,使用IO口时必须线设置IO口模式
    每个IO口均可独立使能内部4k上拉电阻


    第5集
    STC32系列单片机简介
    命名规则:
    STC 32 X aK bc
    STC——公司名称宏晶
    32——32位
    X——子系列
      G——G系列,无硬件浮点
      F——F系列,有硬件浮点
    aK——SRAM存储容量,akB
    bc——Flash存储容量,bckB

    封装类型
    双列直插式,DIP
    薄型四方扁平式,LQFP
    薄的缩小型小外形,TSSOP
    方形扁平无引脚,QFN

    引脚驱动模式
      准双向输出,可以作输出和输入功能,而不需要重新配置IO口输出状态
    1.PNG
      强推挽输出,下拉结构与开漏输出和准双向输出的下拉结构相同
    2.PNG
      高阻输入
    3.PNG
      开漏输出,既可以读取引脚的外部状态,也可以控制引脚输出高电平或低电平。如果要读取外部状态或者需要对外输出高电平时,需要外加上拉电阻
    4.PNG
    注:(1)软件执行低变高的指令后,加入1到2个空操作指令,再读取外部状态,以避免因为IO口状态改变(比如寄生电容充电导致延时)跟不上处理器速度,导致状态读取错误。
        (2)通过IO端口模式寄存器,可以切换引脚的工作模式。

    下载电路
    串口下载和USB下载共用引脚P3.1和P3.0

    第6集
    Keil μVision 下载及介绍
    也可参考STC32系列数据手册第5章

    第7集
    Keil μVision 设置介绍

    第8集
    Keil 代码案例讲解。
    分析代码的编译过程。

    第9集
    一、STC-ISP下载程序的按钮操作→已练习,成功进行程序下载
    按钮操作的本质:按住P3.2,将P3.2口拉低,然后给单片机重新上电(冷启动)。还可以按住P3.2,重新拔插一次USB。
    “追风剑”使用USB TYPE C线下载固件的方法,IRC频率根据程序需求设置,此处仅作示例:
    无标题4.png 无标题5.png

    NyGlGQMUk5urU70ViiDxP4Q2iOa1AHTMO4faejLU.jpeg
    D5h1aQUm047o8ZwDCfulvEWPH9gRIO2G1VxrByxt.png
    二、硬件仿真
    1.STC-isp:选项卡"Keil仿真设置",视频使用使用的Link1,选择的“使用SWD口仿真”,而我使用“追风剑”开发板练习,选择“使用USB口进行仿真”,点击“将所选芯片设置为仿真芯片”,根据提示,给单片机重新上电(建议直接拔插USB-A口),选项卡“USB-HID助手”显示“STC/USB-ICE”,表明仿真功能生效。同时参考了STC-ISP选项卡"Keil仿真设置"页面的“仿真器使用说明”→已练习,成功进行设置

    无标题3.png
    无标题2.png
    2.Keil:Project Target右键“Option for Targe...”:
    ①“Debug”选项卡,选择“STC monitor-251 Driver”,旁边的“Settings”,选择“USB”→已练习
    ②“Utilities”选项卡,“Use Target Driver for Flash Programming”选择“STC monitor-251 Driver”,勾选“Update Target before Debugging”,旁边“Settings”,勾选“Erase”,“Erase sectors”下拉菜单选择“Used”,勾选“Program”→已练习
    ③点击菜单“Debug”→点击“Strat/Stop Debug Session”→测试多次,Keil总是死机
    无标题.png

    三、二进制、十进制、十六进制
    问:为何大于9的十六进制用字母A~F表示?
    答:正如十进制有0~9共计10个不同的基础数字,因十六进制同样需要十六个不同的基础数字,可以理解为十六个不同的符号。
    四、正数的表示方法
    “正数”对应计算机的“无符号数据”,指大于零的数,包含正整数和正小数。

    第10集 上
    数值的表示和转换
    原码、补码

    第10集 下
    处理器内部架构介绍


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-16 19:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    1

    主题

    32

    回帖

    315

    积分

    中级会员

    积分
    315
     楼主| 发表于 2024-3-12 19:37:13 | 显示全部楼层
    第11集~第17集

    好抽象啊,决定先通看一遍。再看第二遍然后总结吧。

    留几个字,表示还在学习。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 15:15 , Processed in 0.073677 second(s), 60 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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