单片机
文章平均质量分 62
单片机外设以及IDE使用技巧等基础知识或相关内容
不吃鱼的猫丿
这个作者很懒,什么都没留下…
展开
-
工作经验总结:S19(SRecord)文件解析
SRecord文件是由Motorola公司定义的一种ASCII文本文件,文件扩展名包括:.s19、.s28、.s37、.s、.s1、.s2、.s3、.sx、.srec、.exo、.mot、.mxt,都是同一种格式,文件内容没有差异,主要用于记录微控制器、EPROM和其他类型的可编程设备的程序记录。原创 2024-02-22 14:12:00 · 2348 阅读 · 0 评论 -
工作经验总结:Hex文件解析
由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。一般用于MCU程序烧录,可以把hex文件理解为带有地址信息的bin数据的记录集合。(注:烧录时如果使用bin文件则需要指明对应首地址的位置,而使用hex文件则不需要,因为hex文件中包含了对应地址包含的数据内容)原创 2024-02-22 08:46:00 · 4225 阅读 · 0 评论 -
工作经验总结:MCU寄存器库的开发
注意:在定义寄存器结构体的时候,需要注意MCU的字节序,看是小端的芯片还是大端的芯片。小端:低地址存放低位大端:低地址存放高位(1)例:用Renesas中RH850中的一个寄存器作为示例,RH850为小端序一般定义成一个共用体,既可以设置整体值,又可以针对某一位进行设置。// 小端序,低地址存放低位struct} B;(2)例:大端序MCU结构体定义示例// 大端序,低地址存放高位uint16_t R;原创 2023-02-13 18:05:41 · 698 阅读 · 0 评论 -
Renesas:如何指定段(地址)存放数据
目录一、指定段(地址)存放数据(1)定义常量变量到指定ROM地址(2)定义变量到指定RAM地址二、RH850 RAM类型介绍程序中添加:CS+中修改:程序中添加: CS+中修改:Local RAM(LRAM):Global RAM(GRAM):Retention RAM(RRAM):原创 2022-08-22 17:56:05 · 3004 阅读 · 1 评论 -
Renesas:RH850的FDL库的移植与使用
FDL库官方地址:Data Flash Libraries | RenesasRH850的FDL库与用户手册地址:RH850/F1KM-S4 Design Support Resources | Renesas EEL POOL:EEL Pool为EEL提供存储模拟数据和管理信息 User POOL:所有非由EEL pool分配的FDL池空间都可由用户应用程序自由使用,因此称为 用户池...原创 2022-06-16 16:38:29 · 2045 阅读 · 2 评论 -
Renesas:RH850的FCL库移植与使用
FCL库官网地址:Code Flash Libraries (Flash Self Programming Libraries) | RenesasRH850 FCL库与用户手册地址:RH850/F1KM-S4 Design Support Resources | Renesas1.安装官网提供的FCL库文件 2.解压安装后对应目录介绍 3.将官方库文件和对应的用户文件添加到自己的工程中 对于我们来说,我们大致需要修改的文件只有两个 使用R_FCL_HANDLER_CALL_INTERNAL模式可以少原创 2022-06-15 18:17:12 · 2557 阅读 · 1 评论 -
Renesas:配置中断的常规流程——使用C语言方式配置中断向量表(二)
Renesas:配置中断的常规流程_不吃鱼的猫丿的博客-CSDN博客在前面的文章讲到了Renesas的常规中断配置流程,当需要添加新的中断时,每次都需要到boot.asm中添加中断服务的函数名与中断服务函数的向量偏移,会十分麻烦,使用C语言方式配置的中断向量表,则不需要如此麻烦,在使用SmartConfig配置的时候,会顺带生成C语言的中断向量表。1.首先将使用查表方式的注释打开2.选择使用SmartConfig生成的r_cg_intvector.c中的向量表,根据r_cg_intvector.c中的中断服原创 2022-06-07 15:54:39 · 2645 阅读 · 4 评论 -
Renesas:定时器输入捕获
一、PWM输入捕获1、Smart Configurator配置注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获!2、脉冲宽度的获取如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。若无法进入中断,可查看:Renesas:配置中断的常规流程(1)中断方式(Smart Configurator生成的代码)#pragma interrupt r_Config_TAUB0_0_i...原创 2022-03-01 16:59:59 · 1718 阅读 · 2 评论 -
Renesas:RH850G3KH 2.0内核简单知识整理
一、内核系统框图介绍MPU:Memoryprotectionfunction-内存保护单元 P-Bus:外设总线 INTC:Interrupt Controller-中断控制器(INTC1中断控制器1;INTC2中断控制器2) Slave Gurad:保护功能 PEG:PE Gurad-内核资源保护,保护内核RAM不被其他主机访问 IPG:Internal Peripheral Guard-内部外设保护,保护寄存器不被非法访问 GRG:Global RAM Guard-全局R...原创 2022-02-23 11:08:06 · 3783 阅读 · 0 评论 -
Renesas:配置中断的常规流程
在学习使用Renesas的MCU期间,在使用Smart Configurator配置OS Timer的中断时候,发现无法正常进入OS Timer的中断服务函数中,后面通过查询资料才发现解决方法。一、配置中断的常规流程(查表方式)1.主要修改 boot.asm 中的文件内容,首先将使用查表方式的注释打开2.在EIINTTBL向量表段中,添加中断服务函数的偏移量和中断服务函数名中断服务函数的偏移量为 : channel* 4;(channel即向量号) 中断服务函数名可自定义;.原创 2022-02-22 17:46:05 · 1756 阅读 · 6 评论 -
Renesas:初步使用CS+ for CC 的注意事项
目录问题1:编译显示找不到"iodefine.h"问题2:在obj文件中找不到对应的中断符号因为工作原因接触到了新的MCU,因此要使用新的IDE开发环境。本文用于记录在使用CS+ for CC时,遇到了一些问题。问题1:编译显示找不到"iodefine.h"1.最初使用CS+的 Smart Configurator配置完后,直接进行编译,发现报了找不到"iodefine.h"的编译错误问题原因与解决方法:1.主要是因为CS+的工程路径没有添加好,只要将整个工程的文件夹路径原创 2022-02-22 14:21:13 · 7764 阅读 · 3 评论 -
J-Link驱动下载(含历史版本)
一、J-Link驱动官方下载地址二、J-Link下载版本选择原创 2021-01-15 09:01:53 · 11828 阅读 · 0 评论 -
STM32:CCM的使用方法(GCC编译器)
一、CCMRAM的作用 CCM 全称:Core Coupled Memory 。在STM32系列中某些芯片没有CCM,具体需要查看芯片手册。(可以看对应芯片的ld文件,其中如果有对CCM的起始地址和大小的描述的话,那就是拥有CCM) CCM 仅可以由内核进行访问!所以放入CCM中的内容,是不能使用DMA进行访问的!! CCM的优点:将频繁读取的操作放到CCM,或者将中断函数放到CCM,都可以加快程序的执行速度 注意:使用CCM的时候需要查看一下对应芯片的总线架构,如果需要原创 2020-10-12 20:22:19 · 4578 阅读 · 0 评论 -
STM32中的链接器脚本文件(.ld文件)与启动文件(.s文件)的相关知识整理
一、原创 2020-10-12 15:24:35 · 11728 阅读 · 1 评论 -
HAL库使用定时器作为Systick时钟的方法
前言记录一下,在使用CubeMx生成的裸机模版移植完STemWin后,想再移植官方下载FreeRTOS的时候,遇到的一些问题。主要现象是编译没有错误,然后下载程序后,没办法运行对应程序,调试后发现进入HardFault_Handler,经过排查发现是FreeRTOS的心跳时钟与SysTick心跳有冲突。即SysTick没选择其他方式作为心跳源。一、STM32CubeMX生成模版代码中的Systick的配置1、Systick的初始化位于 HAL_Init() 中2、具体位于HAL_I.原创 2020-08-05 20:43:07 · 6344 阅读 · 0 评论 -
Truestudio链接静态库文件的方法
一、Truestudio链接静态库文件时找不到库文件的错误不能在属性 -》 C/C++ General -》 Path and Symbols -》 Libraries 添加库文件路径,添加后会报出找不到库文件的错误!二、Truestudio链接库文件的方法首先将各路径下有关库文件的路径删除 然后在C Linker -》Miscellaneous 中添加库文件的路径...原创 2020-07-31 20:34:50 · 503 阅读 · 0 评论 -
Truestudio中的printf重映射(通过串口打印数据)(HAL库版本)
转载自:https://blog.csdn.net/niu_88/article/details/86684065代码中随意位置添加:#include "stdio.h"#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)PUTCHAR_PROTOTYPE{ HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY); re转载 2020-07-30 19:45:05 · 508 阅读 · 0 评论 -
Windows中使用GCC编译STM32CubeMx生成的Makefile文件
下载ARM官方对应Cortex-M内核的GCC编译器:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads下载windows下make工具(Linux下请忽视):https://github.com/xpack-dev-tools/windows-build-tools-xpack/releases然后添加到windows下的原创 2020-07-23 21:20:59 · 2221 阅读 · 1 评论 -
STM32:使用DWT测量某段程序运行时间
一、思路使用DWT进行追踪计数,在需要测试的程序段前后,设置(全局)volatile 变量读取DWT的计数值。然后将前后数值相减,就得到了这一段程序运行所需要的节拍数,然后在将节拍数除以时钟频率(若时钟频率为72M,则除以72 000 000,以此类推),就得到了这一段程序运行所需要的时间。二、DWT的初始化与使用方法1、有关DWT用作延时或者用于计数用途,在网上有很多资料,可自行查询。这里直接使用一段网上的相关代码:#include "DWTDelay.h" // 0xE000E原创 2020-07-22 20:53:48 · 2142 阅读 · 0 评论 -
Truestudio 环境配置相关内容
转载自:https://blog.csdn.net/HongAndYi/article/details/91302621最近一直在使用STM32CubeMX和TrueSTUDIO进行STM32的程序开发,用起来已经是得心应手了。使用TrueSTUDIO的过程中知道了一些环境设置的小技巧,可以提高工作效率过减少问题,故专门贴出来。TrueSTUDIO的环境设置主要是在项目的属性设置对话框里进行设置。(1)使用并行编译在C/C++ Build的Behavior设置页面,勾选Enable para转载 2020-07-21 13:48:43 · 332 阅读 · 0 评论 -
STM32: ADC采样频率及相应时间的确定
转载自:http://m.elecfans.com/article/594153.html一、STM32 ADC 介绍 STM32 ADC 是一个12 位精度、 一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。转换时最快为1us,当ADC的输入时钟超过14MHz 时其会损失一转载 2020-07-21 10:05:41 · 38667 阅读 · 11 评论 -
Truestudio中的printf重映射(通过串口打印数据)(标准库版本)
一、printf重映射相关内容在Truestudio中与printf相关重映射的文件有:syscall.c、tinyprintf.csyscall.c: _write() 函数,在这个函数中最终实现串口打印 tinyprintf.c: printf 重命名成 iprintf ,然后由iprintf来重映射printf的功能1、__write()函数中使用串口发送要打印的数据:2、 iprintf与printf直接的关系:(重命名)3、iprintf中的函数实现:(True.原创 2020-07-09 11:55:20 · 678 阅读 · 0 评论 -
STM32Cubx中的使用小坑:使用st-link或者j-link下载一次后就无法再次下载的原因及解决方法
一、原因在STM32CubeMX中的sys选项 选择了 No Debug选项。(后面将No Debug 选项 改成 Serial Wire选项 就行了)二、解决方法那么无法下载一次后无法再继续下载调试的解决方法:1、将Boot0拉高后,再进行下载2、使用isp方式进行下载...原创 2020-07-09 11:37:35 · 3858 阅读 · 4 评论 -
STM32位带操作
一、STM32位带操作原创 2020-06-11 10:45:01 · 1044 阅读 · 0 评论 -
STM32F10x 更改外部晶振后,修改时钟频率的方法
转载自:https://blog.csdn.net/qq_26039331/article/details/78751047此文章为引用 正点原子详细讲解刚刚接触STM32的时候,用的都是8M晶振。比如你想更换到为外部晶振为12M,但是主频仍想用72M的。该如何设置?或者想倍频到更高的主频该怎么修改?例子就直接直接拿<正点原子>的例子吧! 属性 原来 现在 外部晶振 8M 12M 倍频 9 6 主频 72M 72M转载 2020-05-15 16:31:53 · 4306 阅读 · 0 评论 -
STM32芯片命名规则
原文转载自:https://www.cnblogs.com/dylancao/p/10330866.html 一张图看懂STM32芯片型号的命名规则 意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、增强型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和 20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人转载 2020-05-09 14:48:42 · 523 阅读 · 0 评论 -
STM32系统时钟RCC详解
转载自:https://blog.csdn.net/as480133937/article/details/98845509 1什么是时钟时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口,ADC),时钟的重要性不言而喻。 为转载 2020-05-09 14:07:48 · 2488 阅读 · 1 评论 -
晶振(crystal)与晶振(oscillator)的区别
转载自:https://blog.csdn.net/tq384998430/article/details/53905584晶振与晶体的区别:1) 晶振是有源晶振的简称,又叫振荡器。英文名称是oscillator。晶体则是无源晶振的简称,也叫谐振器。英文名称是crystal,电路上简称为XTAL。2) 无源晶振(晶体)一般是直插两个脚的无极性元件,需要借助时钟电路才能产生振荡信号。常见的有49U、49S封装。3...转载 2020-05-09 11:52:41 · 14461 阅读 · 0 评论 -
Truestudio相关配制
转载自:https://blog.csdn.net/luxuchen188/article/details/86599743#4_38前言鉴于keil开发环境的代码编辑不够友好,以及keil是商业付费软件,可能有版权问题;而ST又于2017年收购了TRUESTUDIO的开发公司ATOLLIC,所以TRUESTUDIO可能成为未来STM32的官方开发工具。特写此篇教程用于这款IDE的讲解。本教程...转载 2020-04-22 17:46:17 · 688 阅读 · 0 评论 -
CPU性能参数:MIPS,频率,IPC,CPI,时钟周期,机器周期,指令周期,主频
CPU性能参数:MIPS,频率,IPC,CPI,时钟周期,机器周期,指令周期,主频首先,了解下晶振的作用。没有晶振,就没有时钟周期;...转载 2020-04-16 15:35:54 · 8284 阅读 · 0 评论