STC32G资料及入门介绍

这篇具有很好参考价值的文章主要介绍了STC32G资料及入门介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

STC32G是STC新推出的32位单片机,也就是广义的32位的8051单片机。实际上使用的是Intel的C251架构,因此在编译器上KeilC51是编译不了STC32G的工程的,要使用KEILC251。优势的话最大的就是价格了,STC32G12K128目前推广价格在5块钱左右(当前时间哈),LQFP48的封装,128K的Flash,4+8K的RAM,带USB带CAN。这个配置和价格还要啥自行车。而且本身LQFP48的封装,即便是ARM的架构,应用也不会太复杂。因此可能会替代很多低复杂度的32位ARM的场景。另外的话可以从51平台方便的过渡到这个平台,对于51使用者来说十分的友好。


提示:以下是本篇文章正文内容,下面案例可供参考

一、资料准备

STC32G数据手册
CSDN站内下载
STC32G12K128 最小系统原理图
CSDN站内下载
STC32G FreeRTOS例程
CSDN站内下载
KEIL C251
CSDN站内下载
提示:KEIL的注册自理哟~
STC最新下载软件 支持STC32系列 (6.89F以上版本才支持STC32G)
CSDN站内下载

二、工程介绍

1.文件架构

STC32G官方给的工程是基于FreeRTOS的,因此之前喜欢裸跑的小伙伴要自学一下FreeRTOS,不过这个也非常的简单上手非常快。
1.1
STC32G资料及入门介绍
从上图可以看出,示例工程的文件架构分了六个部分。其中FreeRTOS目录下存放的是FreeRTOS的源码,这里所有的源码文件都包含在里面了,包括不常用的croutine.c,这个有时间具体研究一下,看看有没有用到。一般的小伙伴可以忽略这里,工程肯定是STC的工程师已经帮忙移植好了。直接用就行。
1.2
STC32G资料及入门介绍
port目录下就是移植的部分了。代码也针对STC32G或者是C251平台做了适配。

static StackType_t data xPCL;
static StackType_t data xPCH;
static StackType_t data xPCB;

数据声明时候指定RAM存放位置

/*Setup the systick timer to generate the tick interrupts at the required
frequency. */
static void prvPortSetupTimerInterrupt( void )
{
    /* Timer0 work at 1T mode. */
    AUXR |= 0x80;

    /* Timer0 work at mode0 (16-bit auto reload mode) */
    TMOD &= ~0x0f;

    /* Initial timer0 reload value (1ms per cycle). */
    TL0 = ( uint8_t )( portRELOAD_VALUE );
    TH0 = ( uint8_t )( portRELOAD_VALUE >> 8 );

    /* Interrupts are disabled when this is called so
    the timer can be started here. */
    TR0 = 1;

    /* Enable timer0 interrupts. */
    ET0 = 1;
}

系统节拍定时,这里使用了TIMER0,这样像用户就不能再用TIMER0做其他应用了。这里不像ARM里面直接用SystemTick就可以。好在STC32G的串口不需要再占用串口资源了,不然定时器就有点紧张了。
另外堆栈库使用的是heap_1,FreeRTOS不同的HEAP库在Malloc和Free方面的策略不同,用户要注意一下。不过一般的应用需要使用Malloc和Free的概率也很低,毕竟还是有一定风险,用不好的话容易出错。
1.3
STC32G资料及入门介绍
user里面存放的是上层应用代码,其中FreeRTOSConfig.h是FreeRTOS的配置文件,从这个文件里面也能了解很多内容。

#define configUSE_ROMHUGE                       0                       
#define MAIN_Fosc                               ( 24000000UL )          

首先可以看出这个工程所使用的是24M的时钟,置于是内部时钟还是外部时钟还没有研究。但是作者使用的无外部晶振的板子也可以正常运行。所以一般就不纠结了,一般的应用也足够,并且手册里提到过30M的内部晶振并不是很稳定。
另外configUSE_ROMHUGE的选项与用户代码的大小有关,如果用户代码超过了64K,则需要配置为HUGE模式。同时在KEIL里面的选项也需要进行配置,否则应该是编译会出问题。
STC32G资料及入门介绍

#define configUSE_MALLOC_FAILED_HOOK            0                   

另外这个钩子没哟使用,一般任务在分配内存池不足的时候会调用这个钩子函数进行提示,还是比较有点用的,建议打开并配置上钩子函数。
其他没有深入的去看,系统节拍是1ms也是常规的配置。

另外这个目录下的putchar.c是用来做printf重定向的,可以在STC32G_UART.H这个头文件中定义打印的串口是哪个。示例工程里用的是UART2 波特率 115200。

#define	PRINTF_SELECT  UART2		

总结

以上就是今天分享的内容,内容补充中……文章来源地址https://www.toymoban.com/news/detail-403448.html

到了这里,关于STC32G资料及入门介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 蓝桥杯嵌入式STM32G431RBT6的学习(总大纲)(HAL库学习)板子介绍

    蓝桥杯嵌入式STM32G431RBT6的学习(总大纲)(HAL库学习)板子介绍

    我写蓝桥杯嵌入式大概用到的外设,都是非常常用的。我在这里汇总一下。 蓝桥杯嵌入式基础模块——GPIO的使用(新板)STM32G431(HAL库开发)_薛定谔的猫咪死了的博客-CSDN博客 蓝桥杯嵌入式基础模块——串口的使用(新板)STM32G431(HAL库开发)_薛定谔的猫咪死了的博客-C

    2024年02月02日
    浏览(39)
  • 《JavaCV从入门到实战教程合集》介绍和目录

    《JavaCV音视频合集》是《JavaCV入门指南》、《JavaCV开发详解》、《JavaCV进阶之FFmpeg》和2022年《JavaCV音视频开发宝典》四合一汇总合集,完整包含《JavaCV入门指南》、《JavaCV开发详解》、《JavaCV进阶之FFmpeg》和《JavaCV音视频开发宝典》系列所有付费内容。 《JavaCV入门指南》 《

    2023年04月11日
    浏览(15)
  • 微软D365 入门文章汇总以及各项认证介绍(持续跟新.....)

    希望入门D365的同学们,需要具备的知识点,涉及C#,WebApi,前端知识,Power Platform等知识,以及Azure的知识点等,需要有了解。 实施Microsoft Dynamics 365 CE-1. Dynamics 365 CE简介,提供了有关Dynamics 365客户参与度的基本详细信息_Martin-Mei的博客-CSDN博客 实施Microsoft Dynamics 365 CE-2. 实施

    2024年02月07日
    浏览(10)
  • 【热门框架】Mybatis-Plus入门介绍看这一篇文章就足够了

    MyBatis-Plus 是在 MyBatis 的基础上进行了封装,提供了更加便捷的开发方式,具有简化开发、提高效率等优点。以下是 MyBatis-Plus 的一些特点和用法: 通用 CRUD 操作:MyBatis-Plus 提供了通用的 CRUD 接口,可以直接调用,无需再编写 SQL 语句。例如,可以通过继承 BaseMapper 接口来实现

    2024年02月02日
    浏览(14)
  • 64MHz 闪存STM32G0B1CEU6(STM32G0B1CCU6)STM32G0B1CBU6引脚配置图、32位微控制器

    64MHz 闪存STM32G0B1CEU6(STM32G0B1CCU6)STM32G0B1CBU6引脚配置图、32位微控制器

    STM32G0B1 32位微控制器具有最高512KB嵌入式闪存和144kB RAM存储器。该器件采用48-UFQFPN 引脚封装。它支持USB全速主机/设备、集成USB Type-C控制器和收发器、FDCAN协议以及多达8个UART。 STM32G0 32位微控制器 (MCU) 适合用于消费、工业和家电领域的应用,并可随时用于物联网 (IoT) 解决方案

    2024年02月09日
    浏览(17)
  • 基于高性能的STM32G031K4T6、STM32G031K6T6、STM32G031K8T6(ARM微控制器)64MHz 闪存 32-LQFP

    基于高性能的STM32G031K4T6、STM32G031K6T6、STM32G031K8T6(ARM微控制器)64MHz 闪存 32-LQFP

    STM32G0 32位微控制器 (MCU) 适合用于消费、工业和家电领域的应用,并可随时用于物联网 (IoT) 解决方案。这些微控制器具有很高的集成度,基于高性能ARM® Cortex®-M0+ 32位RISC内核,工作频率高达64MHz。该器件包含内存保护单元 (MPU)、高速嵌入式内存、DMA以及各种系统功能、增强型

    2024年02月11日
    浏览(12)
  • 【N32G457】 基于RT-Thread和N32G457的迷你键盘

    【N32G457】 基于RT-Thread和N32G457的迷你键盘

    此文为参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛期间作品。 由于疫情影响加上其他各种原因,本应在3月25日结束的比赛在今日终于完成了一个比较完整的作品,无论是否可以参赛,还是希望对大家有所帮助。 先放个图。 机械键盘在最近几年发展迅猛,功能也逐

    2024年02月09日
    浏览(11)
  • Dell Inspiron 5488加内存32G

    Dell Inspiron 5488加内存32G

    Dell Inspiron 5488加内存32G   原装内置内存仅仅8G, 目前看,真的太小了!   1.内存型号 Dell 5488内存型号:DDR4 2666。 笔记本有两个内存插槽, 原装占了一个, 还能扩展一个。   2.买内存 如果买Dell原装笔记本内存, 8G就得500块左右。   我咨询了一下, 三星的笔记本内存,可以

    2024年02月09日
    浏览(11)
  • 装完32G内存条 电脑飞跃提升!

    装完32G内存条 电脑飞跃提升!

    我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 大家好,我是南城余! 今天分享下装内存的经过! 这个年代,电脑16G干互联网,或许早已

    2024年01月17日
    浏览(13)
  • 【STM32】STM32G系列使用CORDIC模块加速计算

    【STM32】STM32G系列使用CORDIC模块加速计算

    STM32G431系列产品内置了CORDIC运算单元,可以用来加速数学计算,如三角函数、取模、开方等。适合大量数据进行相同的运算操作。配合DMA可以大大节省CPU计算开销。 使用CORDIC模块无需配置参数,若采用DMA方式则只需配置DMA读写通道,配置如下 在代码中对cordic模块进行初始化

    2024年02月12日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包