STM32的几种延时方法(基于MDK固件库3.0,晶振8M)单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ms( )。1.普通延时法这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。下面的代码是在网上搜到的,经测试延时比较精准。//粗延时函数,微秒
void dela            
                
         
            
            
            
            注意:本文中关于STM32的位带操作原理只适用于Cortex-M3和Cortex-M4(F)内核处理器,Cortex-M系列的其他内核处理器可能不支持位段操作(如Cortex-M0内核处理器就不支持位段操作),详情请参考相关内核处理器的指南或技术参考手册(TRM)。    1、简介今天参考了好几篇博客,总算是对 bit-band操作有些了解了。首先, 什么是位带操作?            
                
         
            
            
            
            适用COTEX-M3系列的MCU也有两三年的时间了,一直用的是ST的产品,由于开发紧张,时间紧迫,整个过程不求甚解,只要东西能够做出来,也就不关心到底是怎么回事。最近刚好有点时间,在整理之前的软件设计时发现了一些疑惑:使用过STM32系列产品的开发人员都知道,在该款芯片上凡是要使用某一个功能,必须给该功能分配相应的时钟,如何来分配这个时钟资源就成了一个问题:举个具体的例子,以STM32F103X8            
                
         
            
            
            
            1、MQTT协议    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-17 10:34:38
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            STM32功能安全 生态系统STM32有很多内置的安全属性,比如双看门狗,比如I/O端口的锁定功能,比如带各种校验方式的片上SRAM。它们是实现由STM32构建的电子产品,在各个行业所要求的安全认证的硬件基础。为了帮助客户快速通过行业安全认证,ST提供了多个功能安全设计包,里面包括文档、安全库(有些是全源码开放),使用安全库的例程。除此之外,我们还录制了功能安全ClassB的培训视频。工程师在客户            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-17 12:50:41
                            
                                200阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            现在高级点的MCU都会带AES加密引擎,软件算有延迟硬件基本可以数据发出结果就马上返回,软件加密库可参考mbedTLS,现在信息安全也是很重要通讯数据,存储数据都会进行加密存储以防被破解防制,我写程序的习惯都是对于上层或应用来说都是很友好,crypt_read(CARD_MANAGE_TypeDef *card_manage,uint16_t addr, uint16_t len, uint8_t            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-04 10:46:30
                            
                                32阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            简介IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。通常实现 IAP 功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信方式(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-03 13:40:25
                            
                                178阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             模拟IICIIC协议GPIO配置根据时序图完成代码起始与停止信号等待应答读写字节检查设备是否连接 IIC协议I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、 CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。它是一个支持多设备的总线。“总线”指多个设备共            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 14:56:28
                            
                                178阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            arduino一直以来深受广大极客的喜爱,丰富的库以及外围扩展,但是Atmega328已经比较老旧了,STM32相比而言,性能要比arduino强大了太多,因此我们选择用STM32F103C系列来代替arduino开发下面跟随我们一起在arduino IDE中搭建stm32开发环境吧1硬件准备:STM32F103C8T6 蓝色开发板 x 1(如图) 软件准备:Arduino开发环境操作步            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-01 15:58:39
                            
                                129阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            STM32的加密思路使用系统启动程序STM32 Flash Loader demonstrator将Flash设置为读保护。 所有以调试工具、内置SRAM或FSMC执行代码等方式对主存储器访问的操作将被禁止,只允许用户代码对主Flash存储器的读操作和编程操作(除了Flash开始的4KB区域不能编程)。用户代码允许自主编程可以实现IAP或者数据存储等功能。 这样破解者将不能用调试工具、内置SRAM            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-28 06:24:32
                            
                                213阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在研究生时段时,曾经对STM32进行了学习,在本科时段学习51系列的简单单片机,这种单片机功能比较单一,也没有多外设来使用,在进入研究生阶段由于实验室的关系,接触了PIC系列的单片机,PIC单片机编程比较简单,外设也丰富,完全可以按照数据手册使用起来。这种单片机价格也比较贵,适合在工业场合使用。而在32位的单片机中,STM32比较流行,STM32是使用的ARM内核,不同于51 和PIC,因此学习的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-12 05:57:39
                            
                                77阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            对于STM32,首先我们从其精密性、可靠性以及安全性三个方面来进行说明:精密性:与单片机的外设基本相同,除了其包含了7个DMA(直接存储器访问)通道。每个通道都可以用来在设备与内存之间进行8/16/32位数据的传输。每个设备都可以向DMA控制器发出发送或者接受数据的请求。可靠性:采用硬件来对可靠性进行支持,包括一个低电压检测器,一个时钟安全管理系统和两个看门狗定时器(一个为窗口看门狗,一个为独立看            
                
         
            
            
            
            大家在用stm32库函数的时候几乎都会发现assert_param()这个函数,这个函数是判断参数有没有错误,具体是什么错误呢,我会在后面贴图的。assert_param()这个函数在stm32f10x_conf.h中定义:
 
#ifdef  USE_FULL_ASSERT
#define assert_param(expr) ((expr) ? (void)0 : assert_failed(            
                
         
            
            
            
            0、前言STM32编译后的代码存在FLASH中,通过外部工具可以读出来全部数据,一旦硬件抄板一样,再将FLASH数据全部拷贝至抄板单片机中,既可以完全实现硬件和软件功能抄袭。因此,需要对自己的应用程序加密,即使被抄板和读取FLASH数据,拷贝过后仍然无法执行相应的功能。【ps:没有解不开的单片机,主要看解密的经济效益】主要思路:利用每个芯片的96位唯一ID,进行一定的计算和单向加密,得到唯一的应用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-02 21:49:54
                            
                                1024阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            STM32点阵字库-ASII字符集Fang XS.1452512966@qq.com如果有错误,希望被指出前言STM32使用LCD显示时,使用带字库的LCD可以直接用。但是项目上,可能需要多国语言字库,让产品能销售到不同国家。大部分的国家使用英语,一般采用ASII编码,常规做法是用不同的数组来存放不同字体的ASII字库。但是这样有个缺点,就是占RAM内存,STM32跑裸机还好,如果需要RTOS,F            
                
         
            
            
            
            stm32的加密有很多方法,利用ID号码加密,读保护加密,这些方法都是最常见的方法,也容易被破解。我在想,能不能利用PCB硬件参数的差异,通过校准保存参数,然后让程序严格按照保存的参数去运行,当然要考虑环境(例如温度)对参数的影响,加一些补偿算法。如果没有校准过程,硬件参数偏差大的板子运算精准度很差,甚至运行异常。由于硬件有差异,每块板子校准出来的参数都有偏差,这样即使别人拷贝出Hex文件,放到他            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-18 20:56:20
                            
                                7阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            使用STM32的芯片的朋友,可以很方便的将移植到GD32上面,下面就具体移植过程分享一下:  整个移植过程可以分为硬件和软件两个方面。  硬件方面:  首先要确定先前所使用ST芯片的flash大小和管脚数量,然后替换成GD相同大小Flash和管脚数量的芯片。  简单来说就是STM32F103xxxx替换成GD32F103xxxx。  GD和ST的命            
                
         
            
            
            
            我们在学STM32的时候函数assert_param出现的几率非常大,上网搜索一下,网上一般解释断言机制,做为程序开发调试阶段时使用。下面我就谈一下我对这些应用的看法,学习东西抱着知其然也要知其所以然。 4 断言机制函数assert_param 我们在分析库函数的时候,几乎每一个函数的原型有这个函数assert_param();下面以assert_param(IS_GPIO_ALL_PERIPH(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-01 09:08:14
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目的:对运行于STM32的嵌入式代码程序进行加密编译环境:IAR Embedded System for ARM5.5一.STM32Flash组织STM32的Flash包括主存储器(HD版本,512KB)+信息块。信息块包括2KB的系统存储器(用于系统自举启动代码)和16字节的选项字节(8个字节数据+8个字节数据的反码)。 二、STM32读保护STM32读保护是通过设置RDP选项字节,然            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-12 21:15:06
                            
                                477阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            AMBA AMBA(Advanced Microprocessor Bus Architecture)是ARM公司提出的一种开放性的SoC总线标准,现在已经广泛的应用于RISC的内核上了。 AMBA定义了一种多总线系统(multilevel busing system),包括系统总线和等级稍低的外设总线。 AMBA支持32位、64位、128位的数据总线,和32位的地址总线,同时            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-20 07:43:56
                            
                                181阅读