
STM32
文章平均质量分 86
JF-SOFT
好钢在哪都一样!
展开
-
Keil MDK-ARM: 将二进制文件包含到程序中(使用汇编语言指令INCBIN)
有时我们需要在主控芯片的代码里访问二进制文件的数据,这个二进制文件可能是校验数据、索引数据表、FPGA程序镜像或者其他由外部工具生成的数据。这和我们在PC上可以使用数据库或者直接打开这个文件访问不同,需要在源代码级别上直接访问这些数据。那么,在Keil MDK-ARM上如何实现这个功能呢?下面介绍一种方法,在汇编语言中使用INCBIN指令,直接将二进制数据文件包含到汇编源代码文件中。这就类似于我们在C语言源文件中,使用include预处理指令包含头文件。首先我们打开Keil,创建一个uV原创 2022-04-21 10:14:47 · 1749 阅读 · 0 评论 -
stm32对flash的读写保护与解除
一、STM32对内部Flash的保护措施 所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护。 1、读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:A、 通过调试器(JTAG或SWD); B、从RAM中启动并执行的程序; 2、写保护是以四页(1KB/页) Flash存储区为单位提供写...原创 2021-11-10 21:40:03 · 3785 阅读 · 0 评论 -
STM32 输入捕获的脉冲宽度及频率计算
转自:https://blog.youkuaiyun.com/qq_26093511/article/details/73909933输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。以下是对脉冲宽度及频率的计算。1、脉冲宽度如下图所示,采集该高电平脉冲的宽度,只需要进入输入捕获上升沿检测,记录当前的发生上升沿时的CNT值,再进行输入捕获下降沿检测,也记录当前发生下降沿时的CNT值,两次CNT值的差值再根据计数的频率就可以算出脉冲的原创 2020-11-17 18:09:10 · 1613 阅读 · 0 评论 -
MDK代码不做优化
对某个变量加关键字volatile或者对某个文件单独设置优化等级!1.选中文件2. 设置优化登记原创 2020-01-12 02:29:36 · 1245 阅读 · 0 评论 -
STM32 USB CDC 虚拟多串口
电梯直达楼主发表于 2017-9-28 22:30:04|只看该作者|只看大图 本帖最后由 creep 于 2017-9-28 22:37 编辑 之前一直使用STM32的CDC虚拟串口和上位机进行数据通信,通常只枚举一个串口基本就能满足要求。但是STM32 USB提供了足够的的端点可以在需要的情况下枚举出多个串口供使用,最新跟着论坛大神飞...原创 2019-12-02 00:58:17 · 7390 阅读 · 7 评论 -
STM32 SD bootloader实现
前几天在网上看到了一个sd bootloader,但是下载需要积分。于是想着自己写个简单的sd卡的bootloader,实际上就是stm32的iap功能了。简单介绍一下stm32的iap吧,以下内容摘抄自网络。IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地转载 2014-11-07 17:17:50 · 1782 阅读 · 0 评论 -
牛人对STM32的NVIC_PriorityGroupConfig使用及优先级分组方式理解
STM32有43个channel的settable的中断源;AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下/* Preemption Priority Group --------------------------转载 2014-12-02 13:46:41 · 964 阅读 · 0 评论 -
STM32Fatfs遍历文件的两种方法
//遍历文件//path:路径//返回值:执行结果u8 mf_scan_files(u8 * path){ FRESULT res; char *fn; /* This function is assuming non-Unicode cfg. */ char *p; #if _USE_LFN fileinfo.lfsize = _MAX_LFN ...转载 2018-11-02 09:32:17 · 12420 阅读 · 3 评论 -
STM32的FSMC
STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT.一般越是复杂的东西,理解起来就很困难,但是使用上却很方便,如USB.不过FSMC也有很诡异的地方.如*(volatile uint16_t *)0x60400000=0x0;// 实际地址A21=1,而非A22.[注:0x60400...转载 2019-01-12 01:39:35 · 1627 阅读 · 3 评论 -
[转载] STM32的Vcap的问题及解决
前言 我有个同事,经常也是设计电路这些的,像stm32f1,stm32f4这些的电路经常在设计,算是经验丰富吧。但是这次有个案子(平台:MDK+STM32F405RGT6(LQFP64封装)),他也参与了改版V2版(之前那个版本是别人设计的,称之为V1版,其实主要就是改原理图后lay板)。当时,改版完成后,审图的时候并没有仔细看CPU电路,以为和之前的电路一样(之前的CPU电路是完全O...转载 2019-08-31 19:14:29 · 3568 阅读 · 2 评论 -
stm32 定时器定时计算方法
Tout = ((arr+1)*(psc+1))/Tclk ;其中:Tclk:定时器的输入时钟频率(单位MHZ)Tout:定时器溢出时间(单位为us).TIM_Period = arr;eg;99.TIM_Prescaler = psc;...原创 2019-09-23 21:50:18 · 882 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长转载 2014-04-24 11:35:19 · 540 阅读 · 0 评论 -
STM32学习笔记:外部中断的使用
STM32学习笔记:外部中断的使用2011年12月24日 外部中断中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核共支持2转载 2014-04-22 18:25:38 · 906 阅读 · 0 评论 -
STM32的外部中断配置
STM32的外部中断配置 一.配置中断void NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStructure; /* Set the Vector Table base location at 0x08004000 NVIC_SetVectorTable(NVIC_转载 2014-04-22 17:51:12 · 963 阅读 · 0 评论 -
SD/MMC/SDIO 概念区分概要
SD(Secure Digital)与 MMC(Multimedia Card)SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆卡,而 MMC 则是较早的一种记忆卡标准,目前已经被 SD 标准所取代。在维基百科上有相当详细的 SD/MMC 规格说明:[http://zh.wikipedia.org/wiki/Secure_Digital]。SD原创 2012-02-03 10:30:39 · 2025 阅读 · 1 评论 -
以及上拉输入、下拉输入、浮空输入、模拟输入的区别
以及上拉输入、下拉输入、浮空输入、模拟输入的区别 最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(原创 2012-02-14 21:21:30 · 21289 阅读 · 6 评论 -
#,##,__VA_ARGS__的用法
1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x原创 2012-03-20 20:00:26 · 2751 阅读 · 0 评论 -
string.h文件中函数的详细用法
string.h文件中函数的详细用法 先说说strlen 这个比较常用的。 格式:strlen (字符数组名) 功能:计算字符串s的(unsigned int型)长度,不包括'\0'在内 说明:返回s的长度,不包括结束符NULL与sizeof()的区别 strlen(char*)函数求的是字符串的实际长度,它求得方法原创 2012-03-20 20:03:44 · 2411 阅读 · 0 评论 -
STM32精确延时(非中断,非ST库函数)
STM32精确延时(非中断,非ST库函数) 前天学了下stm的systick,发现还满好用的,可以用来精确定时.以前在用CVAVR的时候发现里面的delay.h非常好用.于是,利用stm32的SysTick做了个精确的延时头函数. SysTick的配置在void delay_init(u8 SYSCLK);里面输入的参数SYSCLK是你配置的系统时钟,转载 2012-04-16 20:34:13 · 9582 阅读 · 1 评论 -
LCD中6800和8080的区别
LCD中6800和8080的区别 有好多朋友关于6800/8080的概念可能不是太清楚。经常问些为什么???其实主要区别是总线的控制方式上。对于内存的存储,需要数据总线和地址总线,这都是一样的但对于存取的控制,它们则采用了不同的方式——8080是通过“读使能(RE)”和“写使能(WE)”两条控制线进行读写操作6800是通过“总使能(E)”转载 2012-04-19 14:27:19 · 2172 阅读 · 0 评论 -
FatFs移植笔记(R0.09)
FatFs移植笔记(R0.09)首先将文件拷贝到工程中,其中包括diskio.h、ff.h、integer.h、ff.c、ffconf.h。创建文件diskio.c。将这些文件添加到工程中。根据系统类型设置ffconf.h。_FFCONF是代表了版本号,不做处理。函数和缓冲区配置_FS_TINY设置缓冲区的位置,假如设置为0,也就是每个文件(FIL结构体)中带一个b转载 2012-06-11 08:45:39 · 854 阅读 · 0 评论 -
对于STM32软件复位
对于STM32来说软件复位有两种方式: 1)采用官方自带的软件库 在官方软件库的stm32f10x_nvic.c 文件里 直接提供了 系统复位的函数 /******************************************************************************** Function Name转载 2012-12-29 11:40:53 · 966 阅读 · 0 评论 -
FatFS文件系统详解-附移植建议
最近做的spi flash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一个底层的要自己写,option文件夹里的无视),老点版本就更小了。而且更新很频繁,用户量也够大,就选定它了。尽管最后由于转载 2013-07-08 10:37:16 · 1296 阅读 · 0 评论 -
STM32_GPIO使用
1 .STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出)① 浮空输入_IN_FLOATING② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD1.1原创 2012-02-03 08:49:21 · 1176 阅读 · 0 评论