Stm32
文章平均质量分 51
oshan2012
这个作者很懒,什么都没留下…
展开
-
Cortex-M3双堆栈MSP和PSP
cortex-m3 psp msp转载 2022-06-08 10:47:15 · 3315 阅读 · 1 评论 -
关于ARM Keil5 Optimization level 优化等级的一些分析
官网文档:https://www.keil.com/support/man/docs/uv4/uv4_dg_adscc.htmOptimizationControl compiler code optimization for the generated code. Sets the compiler command-line option -Onum:Default: Use the compiler default or the setting of a higher Target or Gro转载 2021-12-10 14:58:51 · 2489 阅读 · 0 评论 -
Keil 下生成LIB库文件以及如何使用LIB库文件
Keil 下生成LIB库文件以及如何使用LIB库文件如何生成LIB库文件?首先准备好生成LIB库文件对应的.c和.h文件,我这里用到的.c和.h文件分别是:commLib.h:/// 延时函数,单位ms // 晶振频率为11.0592MHz时延时1ms子程序 ///void delay(int ms);/// 循环左移函数 2015年7月27日 21:34:44 ///unsigned char ccCrol(unsigned char or转载 2020-12-19 15:40:11 · 1053 阅读 · 1 评论 -
STM32完成USB_Keyboard的实验总结
STM32完成USB_Keyboard的实验总结实验平台: 正点原子战舰开发板(STM32F103ZET6) + win7(PC),下位机程序是通过战舰开发板上“实验49触摸USB鼠标”更改.实验目的: 使用STM32F103自带的USB模块编程实现下位机与PC的USB通讯,使用开发板上自带的触目屏作为键盘输入,在PC的记事本中显示对应按键.实验心得: 实验中碰到问题最多的地方就是设备的枚举不成功.若设备的枚举成功,后面的处理就会简单很多.通讯成功后就可以使用USBlyzer软件抓取数据包,解析转载 2020-11-18 16:13:36 · 1236 阅读 · 0 评论 -
STM32的USB程序JoyStickMouse源码分析
https://my.oschina.net/u/184090/blog/467826一、USB的“JoyStickMouse”例程结构分析1、例程的结构(1)底层结构 包括5个文件:usb_core.c(USB总线数据处理的核心文件),usb_init.c,usb_int.c(用于端点数据输入输入中断处理),usb_mem.c(用于缓冲区操作),usb_regs.c(用于寄存器操作)。它们都包含了头文件“usb_lib.h”。在这个头文件中,又有以下定义:...转载 2020-11-16 15:37:19 · 742 阅读 · 2 评论 -
STM32的USB例程JoyStickMouse代码分析
https://blog.csdn.net/niepangu/article/details/45081081 本帖最后由 追风 于 2010-12-4 17:30 编辑 一、USB的“JoyStickMouse”例程结构分析 1、例程的结构 (1)底层结构 包括5个文件:usb_core.c(USB总线数据处理的核心文件),usb_init.c,usb_int.c(用于端点数据输入输入中断处理),usb_mem.c(用于缓冲区操作),usb_regs.c(...转载 2020-11-16 15:33:16 · 702 阅读 · 0 评论 -
基于CH340的一键下载电路
阅读目录一、CH340简介 二、CH340G在Arduino上的下载电路应用 三、CH340G在STM32上的下载电路应用 四、CH340驱动程序下载回到顶部一、CH340简介 CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口。CH340是国产芯片,应用场合居多,市场占有率很高。常用的USB转串口芯片还有CP2102、PL2303、FT2...转载 2019-12-25 15:43:54 · 6296 阅读 · 0 评论 -
STM32F1系列PB3,PB4,PA13,PA14,PA15用作普通IO口的特殊配置
最近博主用STM32F103C8T6做了一个温度测控模块,用到PB3,PB4,PA15等引脚控制外设。发现不管怎么配置,这三个引脚都不能置零。后来发现是包括这三个引脚在内的PB3,PB4,PA13,PA14,PA15是特殊的IO口,用作JTAG/SWD仿真器的调试接口。其中PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG。这五...转载 2019-12-24 10:59:39 · 974 阅读 · 0 评论 -
STM32的PC13、PC14、PC15用作普通IO口设置方法
1. 引脚注:最新文档中已经删除“在同一时间只有一个引脚能作为输出”也就是三个引脚可以同时作为输出引脚,其他条件未变2. 代码void gpioc_to_io(void){ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE ); PWR_BackupAccessCmd( ENA...转载 2019-12-24 10:57:30 · 4756 阅读 · 0 评论 -
解决STM32开启定时器时立即进入一次中断程序问题
配置STM32定时器时,定时器中断使能、定时器使能、清除更新中断标志位,三者不同顺序程序执行时有不同效果,具体如下:TIM_ClearITPendingBit(TIM1,TIM_IT_Update);//清除更新中断请求位TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);//使能定时器1更新中断TIM_Cmd(TIM1,ENABLE);...转载 2019-12-23 08:18:00 · 2098 阅读 · 1 评论 -
stm32中空的I/O管脚是高电平还是低电平
STM32中空的I/O管脚是高电平还是低电平取决于具体情况。1、IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定。2、STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻。做到低功耗。3、STM32的IO管脚配置口默认为浮空输入,把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用户不希望的默认电平(此时电平取决于用户的外围电路);另一方面降低了功耗,...转载 2019-11-15 10:51:47 · 5120 阅读 · 0 评论 -
DS18B20 for STM32
DS18B20 for STM32 源代码DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂...转载 2019-11-01 14:59:51 · 681 阅读 · 0 评论 -
STM32中如何使用printf()函数
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。下面就说一下使用printf需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的...转载 2019-10-30 09:45:10 · 13361 阅读 · 2 评论 -
Keil中的Code,RO,RW,ZI分别表示什么?
在使用keil开发STM32应用程序时,点击Build后在Build Output窗口中经常会有如下信息:以前一直好奇这几个参数和实际使用的STM32芯片中Flash和SRAM的对应关系,于是上网搜了一圈,做如下总结:这些参数的单位是Byte 图中几个参数分别代表 Code:代码的大小 RO:常量所占空间 RW:程序中已经初始化的变量所占空间 ZI:未初始化的stat...转载 2019-02-18 08:23:33 · 1169 阅读 · 0 评论 -
设置FLASH的读写保护及解除—零死角玩转STM32-F429系列
第51章 设置FLASH的读写保护及解除全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn野火视频教程优酷观看网址:http://i.youku.com/firege本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库说明文档《stm32f4xx_dsp_stdperiph_lib_um.c...转载 2019-05-18 16:12:56 · 3542 阅读 · 0 评论 -
STM32F4(Flash读保护)
STM32F4(Flash读保护)1,目的在实际的产品发布中,如果不对储存在单片机Flash中的程序做一些保护的话,就有可能被一些不法公司,通过仿真器(J-Link,ST-Link等)把Flash中的程序读取回来,得到bin文件或hex文件,然后去山寨产品。所以我们需要对程序进行保护,一种比较简单可靠的方法就是把Flash设置成读保护。2,开发环境1...转载 2019-05-18 15:46:49 · 2234 阅读 · 0 评论 -
stm32的几种读保护措施讲解
综合网上讲解的几种读保护措施,这里简单总结下:采用stm32唯一ID作为加密的字符,使用固定密码,采用16位字节AES加密的方式生成密文,然后写进flash,,app程序执行的时候需要判断读取的stm32唯一ID号和AES解密出来是否一致,是执行程序,否则不执行,测试过,但这个方案针对生产比较麻烦,这里不采用ChipUniqueID[2] = *(__IO u32 *)(0X1FFF...转载 2019-05-18 14:50:37 · 1339 阅读 · 0 评论 -
STM32通过读取芯片唯一ID号来实现程序的保护,防止被抄袭
大家好!我叫肖亚平,从小热爱上了电子技术,读书时阴差阳错的选择了电子这方面的专业,学习电子技术、一直到今年毕业。对于我的理解来说,学校里面学到的技术不是全部实用,但是必须有用,所以一直奋斗在前线。我对学习总结出一句话“压力不是有人努力,而是比你牛X N倍的人依然在努力”STM32通过读取芯片唯一ID号来实现程序的保护,防止被抄袭。STM32芯片通过STlink可以把程序读出来。只要在相同...转载 2019-05-18 14:14:22 · 11600 阅读 · 8 评论 -
STM32 读写保护功能及设置
功能::读保护设置后将不能读出flash 的内容;当解除读保护的时候stm32 会自动擦出整篇flash;设置:读保护设置:在程序的开头加入“读保护”代码,即实现了读保护功能;(每次程序运行先开保护)解除读保护:解除读保护可以设置在按键里面,方便实现解锁,也不可不设;(1)设置读保护:if(FLASH_GetReadOutProtectionStatus() != SET){...转载 2019-05-18 14:12:28 · 1593 阅读 · 0 评论 -
STM32F030系列实现仿位带操作
1、闲言最近开发的时候,用到了STM32F030F4P6型号的单片机,它只有20个引脚,价格非常便宜,但是功能齐全;定时器、外部中断、串口、IIC、SPI、DMA和WWDG等等,应用尽有,非常适合用来做小设备。可是有个问题是,它是Cortex-M0内核的,不像M3,M4内核一样,可以支持位带操作(就是一位一位地操作,像80C51单片机一样),这就给程序移植或者开发带来了一点点小麻烦,因此我就利...转载 2019-03-18 13:53:52 · 1593 阅读 · 1 评论 -
STM32位带操作
位带操作公式:#define BITBAND(addr, bitnum) ((addr&0xF0000000)+0x2000000+((addr&0xFFFFF)<<5)+(bitnum<<2))支持位带操作的两个内存区的范围是:0x2000_0000-0x200F_FFFF(SRAM区中的最低1MB )0x4000_0000-0x400F...转载 2019-03-18 13:52:52 · 685 阅读 · 0 评论 -
模拟SPI通迅分析
#define macRC522_CS_Enable() GPIO_ResetBits(GPIOA, GPIO_Pin_4)#define macRC522_CS_Disable() GPIO_SetBits(GPIOA, GPIO_Pin_4)#define macRC522_Reset_Enable()...原创 2019-03-11 13:37:45 · 293 阅读 · 0 评论 -
FATFS f_open测试
FATFS移植部份忽略123456.txt的文件内容如下:0123456789abcdefghijklmnopqrstuvwxyzres=f_open(&fnew,"0:123456.txt",FA_OPEN_EXISTING|FA_READ);//只读存在文件if (res== FR_OK)//打开成功 { printf("文件打开成功...原创 2019-03-04 15:59:09 · 815 阅读 · 0 评论 -
STM32Fatfs遍历文件(C语言实现)
//遍历文件//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 ...转载 2019-03-04 14:22:42 · 868 阅读 · 0 评论 -
用单片机的RAM虚拟U盘(文件系统:Fat16)
操作系统:rt-thread文件系统:Fat16硬件平台:stm32f103c8描述:利用mcu的ram虚拟一个U盘,用于存储即时小数据,通过usb以u盘的方式供上位机读取。一:硬盘篇1、硬盘物理结构: 盘片(platter):硬盘由很多盘片组成,每个盘片的每个面都有一个读写磁头(heads)。N个盘片,就有2N个面,对应2N个磁头,从0、1、2……开始编号; ...转载 2019-02-21 11:11:49 · 2937 阅读 · 1 评论 -
KEIL5生成bin文件
添加.bin文件转换工具KEIL5的自带.bin文件转化工具在安装目录下:我的安装目录是C盘即,C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe添加格式为:[C:\Keil_v5\ARM\ARMCC\bin\]fromelf.exe --bin -o file.bin ./Objects/file.axf[***]方括号内容可省略,'./' 指工程文件(即....转载 2019-02-18 10:33:42 · 795 阅读 · 0 评论 -
使用STM32 ST-LINK Utility 设置读保护后不能运行
使用STM32 ST-LINK Utility 设置读保护后不能运行前言有些时候,我们总是按自己的想法,觉得不会有问题的时候,出现了一些看起来奇奇怪怪的问题,只不过最后还是可以发现这是有理可据的。问题某客户在其产品的设计中,使用了STM32F411VET6。客户工程师在开发过程中,尝试使用STM32 ST-LINK Utility 软件配合 ST-LINK 给32F411EDISCO...转载 2019-05-18 16:14:15 · 2153 阅读 · 0 评论 -
MDK中三种linker
MDK中三种linker1、采用target对话框中的ROM和RAM地址采用此方式,需在Linker选项卡中勾选Use Memory Layout from Target Dialog选项(选中这一项实际上是默认在Target中对Flash和RAM的地址配置,编译链接时会产生一个默认的脚本文件),并且在Target中设置好RAM、ROM地址,图2所示。MDK会根据Targ...转载 2019-06-19 11:10:31 · 3389 阅读 · 0 评论 -
FreeRTOS任务优先级和中断优先级的区别
FreeRTOS任务优先级和中断优先级的区别 首先中断优先级和任务优先级这两个之间没有任何关系,不管中断的优先级是多少,中断的优先级永远高于任何任务的优先级,即任务在执行的过程中,中断来了就开始执行中断服务程序。另外对于STM32F103,F407和F429来说,中断优先级的数值越小,优先级越高。而FreeRTOS的任务优先级是,任务优先级数值越小,任务优先级越低。转载 2018-01-03 11:56:45 · 1832 阅读 · 0 评论 -
STM32F4的外部SRAM_原理部分
一、SRAM芯片:STM32F4直接与SRAM芯片连接,具体型号为:IS62WV51216引脚如下:除开基本的电源和地线,IS62WV51216的管脚大概可以这么来分类:所以IS62WV51216的管脚总的来说大致分为:电源线、地线、地址线、数据线、片选线、写使能端、读使能端和数据掩码信号线。IS62WV51216的容量为:2的19次方的地址*16位宽...转载 2019-09-11 15:16:51 · 1635 阅读 · 0 评论 -
STM32F103 一摸就死
同事测试程序说单片机很容易死机,多次测试发现,只要手指一靠近单片机(距离约1cm左右),呼吸灯就不闪了,和死机一样。查网上的资料再分析,然后再测试,确实和串口有关系。三个脚是直接从单片机引出的,没有加任何的上拉下拉电阻。串口中断if(USART_GetITStatus(UART5, USART_IT_RXNE) == SET) //接收中断 { Res =USAR...原创 2019-07-17 10:34:42 · 939 阅读 · 0 评论 -
STM32位带操作总结---浅显易懂
正在准备做毕业设计,配置LED_Config()的时候,又看到了位带操作的宏定义,我又嘀咕了,什么是位带操作,一年前在使用位带操作的时候,就查阅过好多资料,Core-M3也看过,但是对于博主这种“低能儿”来说,你不把它说的白一点,就是感觉理解的不够透彻,于是今天又一次,查阅了各种手册,也算是基本弄懂了,鉴于博主的个人特点,所以本人的介绍也会十分浅显易懂,希望能帮到各位!首先,抛砖引玉,来两个问...转载 2019-07-15 09:06:34 · 6581 阅读 · 0 评论 -
ESP8266之AP模式
AP模式AP就是Access Point 接入点。由ESP8266自己开启热点,供别的设备接入,组成一个局域网。AP模式的TCP实验ESP8266作为服务器,电脑作为客户端步骤如下AT+CWMODE=2 ##配置ESP8266模块为AP模式,开启wifi热点。AT+RST ##重启模块使AP模式生...转载 2019-06-29 11:22:26 · 5626 阅读 · 1 评论 -
esp8266 wifi模组手机一键配网,配置一次,下次重启设备后不需再进行配网
#define ATCMDLEN 20extern uint8_t usart3RecvEndFlag;extern UART_HandleTypeDef huart3;extern uint16_t dmaUsart3RxLen;extern uint8_t dmaUsart3RxBuf[DATA_BUFFER_SIZE];uint8_t wifi_config = 0;t...转载 2019-06-29 11:20:24 · 1647 阅读 · 0 评论 -
STM32 串口中的硬件BUG,请注意!
调试串口时,发现串口会出现频繁跳中断,导致无法执行主循环的问题!调试发现是串口中断硬件BUG:1. USART_ITConfig(USART1,USART_IT_RXNE, ENABLE);使能了接收中断,那么ORE中断也同时被开启了。2. ORE中断只能使用USART_GetFlagStatus(USART1,USART_FLAG_ORE) 读到(没有使能US...转载 2019-07-17 09:55:50 · 1250 阅读 · 0 评论 -
STM32F2系列系统时钟默认配置
新到一家公司后,有个项目要用到STM32F207Vx单片机,找到网上的例子照猫画虎的写了几个例子,比如ADC,可是到了ADC多通道转换的时候就有点傻眼了,这里面的时钟跑的到底是多少M呢?单片机外挂的时钟是25M,由于该单片机时钟系统较为复杂,有内部高/低、外部高/低 、PLL锁相环时钟,又有AHB总线时钟、APB1/2时钟,而例子中很少讲到系统时钟的默认配置是怎么配置呢?那么就发点时间研究下这个单...转载 2019-07-13 14:41:16 · 1093 阅读 · 0 评论 -
cortex-M3 的SVC、PendSV异常,与操作系统(ucos实时系统)
SVC异常是?PendSV异常是?ucos 任务切换时机?ucos 如何满足实时性(实现)?ucos中,systick的优先级?SVC和PendSVSVC(系统服务调用,亦简称系统调用)和PendSV(可悬起系统调用),它们多用于在操作系统之上的软件开发中。SVC:SVC 用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服...转载 2019-07-13 09:08:56 · 499 阅读 · 0 评论 -
stm32F103 DMA通道
转载 2019-06-14 15:07:58 · 7854 阅读 · 0 评论 -
STM32 M3内核滴答定时器
http://www.360doc.com/content/16/0601/06/29617669_564078097.shtml转载 2019-07-13 16:12:55 · 261 阅读 · 0 评论 -
Stm32F407ZGT6 串口通迅 usart2
正点原子的开发板,一定要注意跳线帽串口2usart2.h//STM32F407 zgt6 串口2#ifndef __USART2_H#define __USART2_H#include "sys.h" #define USART2_MAX_RECV_LEN 200#define USART2_MAX_SEND_LEN 200extern u8 USA原创 2017-12-17 08:41:50 · 6526 阅读 · 0 评论