自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (3)
  • 收藏
  • 关注

原创 CCS安装和运行TMS320F28004x第一个程序

TI 的MCU或者DSP,官方的集成开发环境是 Code Composer Studio™ ,要开发TI的芯片,首先需要安装 CCS 环境。下载完之后,点击安装即可,在安装过程没什么特别的地方,基本上一路 next 即可,不多介绍了。中途会让你选择安装的芯片软件包,我们勾选自己需要开发的系列芯片就行了。第一次打开软件会提示如下:要求要选择的 ccs 工作空间保存的文件放到哪个目录,默认它会放在 C 盘的用户目录下的。我这里选择在D盘新建的一个目录存放。然后点击 Launch 进入软件。

2023-10-06 16:46:16 748

原创 ARM汇编与C言语的混合编程

有些时候,我们需要在汇编代码中调用C代码,或者说C代码中调用汇编代码。那么,汇编调用C代码,或者C代码调用汇编函数,他们的函数参数、返回值是如何传递的?对应ARM架构来说,有一个(ARM-Thumb Produce Call Standard),ARM-Thumb过程调用标准。

2023-10-04 20:46:51 395

原创 基于MDK-Keil环境如何把STM32程序直接下载到SRAM运行

对于 Cortex-M 内核的微控制器,它们都可以支持在 RAM 中执行程序,有些非 ARM 的微控制器是不支持的。下面只介绍前面两种方式。首先在修改程序在SRAM运行之前,要先准备好一份可以正常在Flash运行的程序。

2023-10-04 15:42:33 2194

原创 如何在Keil和IAR环境编译生成的bin文件添加CRC校验值

之前写过一篇文章介绍过 CRC 的原理和应用。在程序升级的情况下,我们可以在烧录下载的 bin 文件添加 CRC 校验值,以校验我们获取的bin文件是否正确。下面我打算使用 APM32F407 的工程代码,介绍下如何在 Keil 环境和 IAR 环境对编译生成的 bin 文件添加 CRC 校验值。准备:1、首先你得准备一个可以正常编译运行的 Keil 和 IAR 工程。

2023-10-03 19:08:32 2400 3

原创 S32K144 GPIO编程

前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发,下面就使用该工程模板进行GPIO LED的编程试验。

2023-10-01 19:13:01 804

原创 Ubuntu 22.04.3 LTS安装

我这里选择 2 和 8. 这里的数据,配置完成之后,觉得不够用,或者多了,都可以更改的,不用太纠结。其他配置默认就行。主要是ubuntu的镜像文件路径配置,如下:然后点击关闭,回到原来的界面,点击完成即可。这样我们的虚拟机配置就完成了。

2023-09-16 10:40:58 4453 1

原创 在MDK-Keil中开发S32K144

对于NXP的S32K1xx系列MCU,前面已经介绍过,官方有专门支持该系列MCU开发的IDE工具——S32DS,这个工具还有对应的代码生成配置工具,而且也是官方推荐使用的工具。S32DS开发环境是基于Eclipse改写的,熟悉Eclipse的话可以很快上手。但是很多人使用MDK-Keil软件更多,所以介绍下怎么使用MDK-Keil环境来开发S32K144.

2023-09-10 23:38:40 1156 2

原创 CRC原理介绍及STM32 CRC外设的使用

简称CRC),由于 1961 年首次提出的一种纠错码理论。CRC是一种,主要应用于数据通信或者数据存储的场合,用来检测或校验数据传输或者数据存储后可能出现的错误,特别是擅长检测由传输通道中的噪声引起的常见错误。CRC是数据通信领域中最流行的一种错误检测方法,传输过程中的数据信息字段长度,以及校验码的字段长度可以任意自定义的指定,但是通信双方必须使用同一标准的CRC校验。

2023-09-10 00:46:54 1495

原创 MDK-Keil AC6 Compiler屏蔽特定警告

最近在使用STM32CubeMX生成MDK工程是,使用了 AC6 版本的编译器进行编译代码,然后发现了一些警告,但是在 AC5 版本下编译又正常。于是研究了下怎么屏蔽特定的警告,这里记录一下。

2023-09-09 00:32:43 1281

原创 01_TMS320F28004x系列MCU介绍和资料搜集

TI公司在处理器方面的产品线有:基于ARM内核的微控制器/微处理器、MSP430微控制器、C2000系列实时微控制器、还有数字信号处理器(DSP)。其中,C2000是TI公司专门针对实时控制推出的32位微控制器。TI公司是把C2000系列定位为MCU,但是它与通用的MCU又不一样,体现在它的内核其实是。同时,还具有一个独特的模块(Control Law Accelerator ,控制率加速器),CLA是一款独立的、完全可编程的 32 位浮点数学处理器,它的功能类似CPU的一个协处理器。

2023-09-06 00:45:38 957

原创 S32K144 GPIO外设分析

下面的内容来自于S32K用户手册的翻译,或者网上关于S32K系列的一些pdf文件介绍。有些内容可能会出现理解不到位或者翻译错误方面,如果大家有疑问最好可以查阅用户手册。GPIO和PORT的数量从用户手册,对于PCR(引脚控制寄存器)的数量描述,如下表:每一个引脚都有一个独立的 PCR 寄存器对应着,那么S32K144型号,对应的GPIO引脚数量有:18+18+18+18+17 = 89,就是说。

2023-07-23 22:04:54 1322

原创 S32K1xx SDK(版本:S32_SDK_S32K1xx_RTM_4.0.3 )详细介绍

下面是引用自NXP官网对S32K1xx SDK的介绍:S32K1的S32软件开发工具包(SDK)提供了性价比高且使用便捷的完整解决方案,可与S32K1整个系列微控制器的连接、电机控制和安全库堆栈相匹配。S32K1系列的S32SDK非常适合汽车领域的所有应用。特征包含在S32 Design Studio中Processor Expert图形配置集成的恩智浦软件:电机控制库(AMMCLib)、结构核心自检(sCST)、SBC中间件。

2023-07-23 13:38:56 2110 6

原创 S32DS新建工程、编译调试下载、导入工程详细介绍

新建了一个工程之后,下面简单介绍下基本的UI界面。其中最左下角那个是界面,这个界面很重要,是图形化配置界面,然后可以根据这些配置自动生成代码。其中,左边那些配置文件,都是系统帮我们创建好了的,我们其实可以直接用就行。有PE工具的调试,以及Jlink工具的调试。我目前使用到PE工具调试可以查看寄存器值,而Jlink调试查看不了寄存器值。连接了开发板之后,点击Debug就可以吧程序下载到芯片上了,而且可以进入到调试界面。

2023-07-20 00:06:44 7512 1

原创 S32 Design Studio for ARM(S32DS)下载和安装

安装过程中,会弹出一个输入license的对话框。如下:然后,我们可以到刚刚下载这个软件的网页,上面就有license,我们复制过来即可。然后会有选择是 online 还是 offline 验证,我们要选择的是 online 验证。注意要保证联网,不然会报错说激活请求失败。

2023-07-18 21:49:12 4499 3

原创 S32K系列MCU介绍和资料搜集

关于K1系列,官网的介绍如下:S32K1系列32位AEC-Q100认证的MCU结合了基于Arm®Cortex®-M的可扩展系列微控制器,这些微控制器基于持久功能构建,并具有一套全面的量产级工具,支持高达ASIL B功能安全的汽车和工业应用。S32K1 MCU具备超低功耗工作模式,具有恩智浦固件的加密安全引擎以及具有低级驱动程序和FreeRTOS™操作系统的汽车级软件开发套件。S32K1 MCU采用QFN、LQFP和MAPBGA封装。

2023-07-14 00:08:14 1987 1

原创 C语言的位运算

位操作有逻辑运算和移位运算,如位与、位或、位取反、按位异或、移位等操作。位运算通常会和底层代码寄存器的操作结合在一起使用,比如想要让寄存器中的任意1位或者任意几位位设置为1,或者设置为0,从而实现对寄存器位的控制。

2023-05-21 01:45:26 3103

原创 在Linux开发板上安装HomeAssistant

我安装 Home Assistant 的软硬件环境如下:硬件:STM32MP157,使用的是野火出的开发板。软件:Debian ARM 架构制作的 Linux 发行版,版本信息如下:Linux发行版本:Debian GNU/Linux 10内核版本:4.19.94Python3版本安装Home Assistant 需要 Python3.8 以上的版本,我所使用的版本是:Python 3.10.9。

2023-05-13 23:41:35 3030 3

原创 Linux开发板安装Python环境

对于 Python 是什么,此处简要概括如下:Python 是一种跨平台的解析型编程语言Python 易学、易用、功能强大,被大量应用在 AI、数据处理、编程教育中大量的开发者提供了各种 Python 代码库,其他人可以使用这些库轻松开发自己的程序。

2023-05-13 19:41:50 1360 3

原创 Git标签与版本发布

标签,就类似我们阅读时的书签,可以很轻易找到自己阅读到了哪里。对于git来说,在使用git对项目进行版本管理的时候,当我们的项目开发到一定的阶段,需要发布一个版本。这时,我们就可以对最后一次commit打一个标签,比如说V1.0这样的一个具有特殊意义的标标签。

2023-03-05 11:22:35 1718

原创 1. Adobe Illustrator矢量图形处理软件的安装和介绍

Adobe Illustrator是Adobe系统公司旗下一款处理软件,简称AI。最初是1986年为苹果公司麦金塔电脑设计开发的,1987年1月发布,在此之前它只是Adobe内部的字体开发和 PostScript 编辑软件。AI软件最大特征在于的使用,使得操作简单功能强大的成为可能。现在它还集成文字处理、上色等功能。主要应用领域有:插图制作,在印刷制品(如广告传单、小册子)设计制作方面也广泛使用。事实上,AI软件已经成为(DTP)业界的默认标准。

2023-02-14 22:37:29 1315

原创 八、Git远程仓库操作——跨团队成员的协作

前面一篇博文介绍了git的协作,现在在介绍下如果是的话,如何协作?跨团队成员协作,其实就是你不属于那个项目的成员,你向那个仓库。但是github还有另一种(简称PR)机制,可以让你不用加入那个项目作为协作者,也可以贡献代码。这种机制可以让我们,就能向开源项目贡献代码。下面介绍下这几个步骤。

2023-02-12 12:51:16 705

原创 七、Git远程仓库操作——团队成员内协作

git团队成员协作时,一般会产生两种冲突团队其中的一个成员向远程库推送了更新之后,其他所有的成员都不能再推送了,其他成员想要推送那么必须先拉取最新的远程库,然后才能推送。中的一个成员向远程库推送了更新之后,其他所有的成员都不能再推送了,其他成员想要推送那么必须先拉取最新的远程库,然后才能推送。当我们拉取了远程库最新的内容时,如果别人提交的远程库的修改和你自己在本地仓库的修改,是在同一个文件同一个地方时,那么就会导致自动合并失败,然后会进入到手动合并(手动合并的操作前面已经有写一篇文章介绍)。

2023-02-11 23:49:13 946

原创 五、Git本地仓库基本操作——分支管理

我们在初始化git仓库的时候,会默认创建一个master分支,HEAD指针这时就会默认执行master分支。当我们在master分支提交(commit)了更新之后,master分支就会指向当前当前最新的commit。

2023-02-11 20:12:39 1966

原创 基于Geehy APM32F4移植使用letter-shell命令行终端

letter-shell支持定义自己的命令,并且把该命令导出到shell终端中,以供我们在命令行下使用自定义的命令。在使用letter-shell自定义命令时,要先检查 shell_cfg.h 文件是否开启了命令导出功能。/*** @brief 是否使用命令导出方式* 使能此宏后,可以使用`SHELL_EXPORT_CMD()`等导出命令* 定义shell命令,关闭此宏的情况下,需要使用命令表的方式1就是这个宏需要定义为 1。

2022-12-18 10:40:43 817

原创 六、Git远程仓库操作——创建远程库、推送拉取和克隆远程库等操作

前面的关于git的操作,都是基于本地仓库进行操作的。但是如果我们想通过 Git 分享自己的代码或者与其他开发人员合作,这时我们就需要将数据放到一台其他开发人员能够连接的服务器上,这台服务器就是代码托管中心,或者说是远程仓库。本地和远程仓库的操作大致如下图所示:我们有两种两种方式搭建代码托管:github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。github就是一个典型的第三方代码托管平台。Github 由Chris Wanstrath, P

2022-12-05 22:21:52 2692

原创 四、Git本地仓库基本操作——查看提交历史和版本回退前进

查看git提交历史一般常用两个命令:git log该命令会按照我们提交的时间线,然后列出所有的历史提交。示例:git log 显示的提交历史信息,一般包含下面4条信息:但是, 命令还有很多选项参数供我们选择,以便我们控制输出提交信息的形式。下表列出了 git log 命令的常用选项参数及作用:详细解释可参考下面这篇文章的解释:示例:如果要查看指定文件的修改记录可以使用 git blame 命令,命令格式如下:示例:Git版本前进回退的本质是移动HEAD指针。HEAD指针,默认情况下都会指向最新的一次

2022-12-04 13:44:53 8246

原创 三、Git本地仓库基本操作——git仓库忽略跟踪文件

在工作区中的文件内容,很多时候我们基本只关注源文件。所以,肯定有些文件是不想使用git去管理的,比如:如何忽略这些我们不想进行git管理的文件?方法就是:在工作目录下,创建一个 的文件,然后在文件里面列出来我们要忽略哪些文件即可。也就是说 文件相当于设置了一个过滤规则,可以指定哪些文件可以不纳入git进行版本管理。 文件的编写是有一定的规范 的,如下:具体的例子解释如下:详细的解释可以参考下面这篇博文:比如,我在 文件中,写入如下内容:就相当于在工作目录下,忽略了所有上面写的这些后缀格式的文件了。

2022-12-03 21:05:38 876

原创 二、Git本地仓库基本操作——创建Git仓库、提交更新或删除文件

创建本地工作仓库有两种方法:方法一:我们在其中一个目录下,点击鼠标右键,然后启动git bash。输入下面命令:这条命令即可创建一个git仓库。然后再当前目录下,会创建一个 的隐藏文件夹:里面包含了一个git初始化仓库所必须的文件(每个文件的作用暂时还没研究),如下:方法二:使用git clone命令。2. 新建、修改文件后提交更新到本地仓库上一篇文章介绍到,git 的工作过程其实都是围绕下面这幅图进行的:所以,我们初始化了仓库之后,根据这幅图进行git的一些基本命令操作。Git 文件的4种状态:下

2022-12-03 20:59:54 6792

原创 使用Eclipse搭建STM32嵌入式开发环境

Eclipse是一个开放源代码的、基于Java的可扩展的开发平台。它只是一个框架和一组服务,通过添加各种插件来搭建开发环境(这点和VS Code有点像),因此只要添加了C/C++等语言的开发插件,就可以作为C/C++等其它语言的开发环境。下面一一介绍安装这些工具。

2022-11-20 11:25:36 7640 6

原创 一、Git基本使用介绍

Git就是一款免费开源的版本控制系统,它本质就是一个软件,用户使用时需要输入各种命令(当然也有图形界面版本)完成想要的版本管理操作。Git初始版本是由 Linux 的缔造者 Linus Torvalds 使用C语言进行开发的,当初主要是用于Linux内核源码的版本管理,到现在已经发展成为了最主流的分布式版本控制系统了。

2022-11-13 21:59:18 650

原创 APM32F4在RT-Thread系统上使用LwIP网络功能—基于RT-Thread Studio环境

我们在 board.h 文件中,打开 BSP_USING_ETH 这个宏定义,以及定义 phy 物理芯片的型号(根据自己板子的芯片类型选择),如下:定义了 BSP_USING_ETH 和 PHY_USING_DP83848C 宏定义后,就相当于把 drv_eth.c 文件内容开启了。这时全部重新编译,然后可以看到超级多的报错。这些报错不要被吓到了,其实都是因为缺少文件造成的。

2022-10-24 23:37:04 1180

原创 APM32F4在RT-Thread系统上使用LwIP网络功能—基于ENV环境

这里只做基本的介绍,详细的使用方法请点击下面链接看RTT的官方文档中心中对ENV工具的介绍。Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。ENV工具可以从下面的RTT官方网站下载。

2022-10-23 20:44:36 993

原创 IAR9.30以上版本安装、注册、新建工程和配置过程详细介绍

IAR 一般是指一款嵌入式软件的集成开发环境,类似于 MDK-Keil 这款软件。IAR 对于不同的内核处理器,是对应不同的 IAR 软件的,IAR 到目前为止支持大部分的MCU,比如8051系列、ARM架构系列、MSP430系列、AVR系列等等这些常用的芯片架构。对于 ARM 架构的芯片,有对应的 IAR Embedded Workbench for ARM 软件平台,因为我主要是使用 ARM 架构芯片,下面安装、注册和使用都是基于这个版本进行介绍的。

2022-09-25 22:48:55 31402 12

原创 关于C/C++中const关键字作用的一些想法

const 即是英文单词 constant 的缩写,常数、常量(在实际使用中,准确的说,应该是“只读”)的意思。在C语言中,const 用于修饰变量,那么程序员就是希望这个变量变为“常量”,但是这里加了引号,因为对于C语言来说,我们还是可以通过指针间接修改。

2022-09-03 17:48:20 1088

原创 nr_micro_shell在STM32+FreeRTOS平台的移植和使用

nr_micro_shell在STM32+FreeRTOS平台中移植和使用起来。

2022-08-31 16:51:13 2328 7

原创 动手捣鼓一个log打印调试模块

实现了一个 log 打印调试模块。

2022-08-30 21:51:24 1092

原创 MultiButton按键驱动模块的使用

介绍一个开源的事件驱动型按键驱动模块 MultiButton 在 STM32F407 上的使用。

2022-08-29 17:37:53 1410 4

原创 OLED12864(SSD1306)驱动代码

基于STM32F407,实现了OLED的驱动相关代码,以及实现了字符显示、绘制任意点、任意线、四边形、三角形圆形等图案功能函数。

2022-08-27 21:27:08 5683 3

原创 使用环形缓冲区ringbuffer实现串口数据接收

文章介绍了环形缓冲区(ringbuffer),以及使用C语言实现了 ringbuffer 的代码。并且在串口接收数据中,使用了 ringbuffer 来保存串口接收的数据。最后,测试了使用 ringbuffer 接收串口数据是否出现丢包现象,以及什么情况下会出现丢包。...

2022-08-26 18:13:50 5891

原创 RT-Thread Nano移植FinSH控制台

使用串口中断方式接收数据,实现了控制台的 getchar 函数,从而移植了 RT-Thread Nano 的 FinSH 组件,实现命令行交互功能。

2022-08-21 23:01:44 1776

0.96寸OLED(SSD1306)屏幕驱动代码,实现了画点、任意线、四边形、三角形、圆形等图案绘制,还有字符显示。

该工程源码主要是基于STM32F407芯片,OLED屏幕是0.96寸的I2C接口的屏幕,使用的屏幕驱动芯片是SSD1306。代码实现了显示字符、绘制任意点、任意线、四边形、三角形、圆形,以及这些图案的填充等功能函数,实现的显示功能比较全。

2022-08-27

实现AT命令解析器,提供mqttclient库socket接口,实现mqttclient收发。

工程源码是基于STM32F407ZGT6芯片,使用FreeRTOS系统,实现了ESP8266AT命令收发解析器模块,并根据AT命令解析器实现了ESP8266的socket数据收发接口,从而给mqttclient库提供底层的数据收发接口。最终可以实现设备通过mqttclient连接远程的服务器,进行数据的收发。

2022-08-18

C# TCP Client客户端窗体程序(基于BytesIO程序包)

这是一个基于Winform的C# TCP Client客户端的窗体应用程序,其中TCP Client编写是基于BytesIO库编写的,可以实现连接远程的服务端,以及互相发送和接收功能。

2022-07-17

FreeRTOSv9.0.0.zip

该文件是FreeRTOSv9.0.0版本的官方源码文件

2021-08-05

STM32串行方式驱动LCD12864、画点、画线、画图等工程源码.zip

该工程源码是基于STM32串行驱动LCD12864显示屏的,实现了显示字符串,在LCD显示范围内绘制任意点、画线、显示图片等代码

2021-06-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除