STM32
文章平均质量分 70
蚂蚁取经
学无止境
展开
-
Autosar UDS-CAN诊断开发02-1(CAN、CANFD诊断帧格式类型详解、15765-2(CANTP层)的意义)
CAN原创 2024-04-29 13:08:27 · 3219 阅读 · 2 评论 -
NTC 测试温度
4.计算还是查表法,段与段之间近似直线。1.开尔文273.5就是0摄氏度。2.B一般厂家都会给。原创 2024-03-11 16:17:28 · 239 阅读 · 0 评论 -
STM32 串口采用DMA方式收发
什么是DMA —- Directional Memory Access, 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作我们通过以下几方面学习串口DMA:一、如何理解DMA对于DMA,打个比方就很好理解:角色预设: 淘宝店主 —- STM32 MCU快递员 —- 外设...原创 2020-04-24 11:17:29 · 789 阅读 · 2 评论 -
解决Keil安装Pack包的“Loading PDSC Debug Description Failed”错误
原创 2020-03-18 15:46:17 · 3298 阅读 · 0 评论 -
ADUM数字隔离芯片
ADUM+CH340G+B0505原创 2019-11-22 13:08:57 · 1585 阅读 · 0 评论 -
关于STM32运行时程序卡在B.处的解决方法
总结:程序卡死在B.处,一般都是有中断没有处理,仔细检查下相关中断的配置和处理函数,找出错误即可。原创 2019-10-26 17:40:58 · 1909 阅读 · 0 评论 -
浅析STM32中SysTick在3.5固件库中的应用
浅析STM32中SysTick在3.5固件库中的应用 最近一直在忙STM32的学习,在学习中遇到了不少问题,也经过各种尝试解决问题,在这里我通过博文的形式写出来,也希望能够帮到遇见同样问题的人们。对于STM32系列的芯片,有一个好处就是官方给出了一个固件库,这个能够很方便大家伙的编程。省去了使用寄存器的方法。但是固件...转载 2018-08-01 22:07:57 · 430 阅读 · 0 评论 -
增量式编码器和绝对式编码器区别
一、编码器的分类根据检测原理,编码器可分为光学式、磁式、感应式和电容式,根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。1、增量式编码器 增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B两组脉冲相位差90。,从而可方便的判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,...原创 2018-08-29 13:19:49 · 69833 阅读 · 1 评论 -
8段数码管与字符对照表
原创 2018-08-05 21:37:36 · 29442 阅读 · 0 评论 -
16进制数与浮点数转换
CString tempdata;//定义字符串变量m_edit1.GetWindowTextW(tempdata);//把编辑框1的内容3C9BA5E3读出来tempdata=_T("0X")+tempdata;union { int result ; float f ; } ; //联合 :一种特殊的类 这两种不同的变量共原创 2017-11-16 15:13:57 · 12285 阅读 · 0 评论 -
CRC 在线计算器
On-line CRC calculation and free library https://www.lammertbies.nl/comm/info/crc-calculation.html原创 2017-11-14 11:38:14 · 90680 阅读 · 2 评论 -
Error: L6406E: No space in execution regions with .ANY selector matching
Keil 链接错误 Error: L6406E: No space in execution regions with .ANY selector matching在开发过程当中遇到Keil build错误,检查发现时是链接时出错了。错误内容为:Error: L6406E: No space in execution regions with .ANY selector转载 2017-10-14 08:56:28 · 4115 阅读 · 0 评论 -
在kile中为stm32移植FreeRTOS
原创 2019-04-12 22:05:19 · 228 阅读 · 0 评论 -
FAT FS模块配置 看连接
https://blog.csdn.net/zhzht19861011/article/details/52910541Fatfs模块的功能可以裁剪,通过配置宏定义实现,宏定义位于文件ffconf.h中。1.功能配置1.1 _FS_READONLY使能或禁用与写相关函数。当设置为只读(1)时,API函数f_write、f_sync、f_unlink、f_mkdir、f_chmod、...转载 2019-05-03 10:19:05 · 913 阅读 · 0 评论 -
USB接口定义
usb接口只有四根线,属于串行接口线,两根电源线,两根信号线,电源电压和电流是5V、500ma,而排序是:红线:vcc 白线:data- 绿线:data+黑线:gnd,顺序不要出错,否则会烧主板。 1、常规USB接口排列方式是:红白绿黑从左到右:具体定义:红色-USB电源:标有-VCC、Power、5V、5VSB字样白色-USB数据线:(负)-DATA-、USBD-、P...原创 2019-06-04 10:07:20 · 4263 阅读 · 0 评论 -
FATFS0.13
转载https://blog.csdn.net/ZCShouCSDN/article/details/96127474原创 2019-08-10 12:59:35 · 385 阅读 · 0 评论 -
STM32f105写U盘
地址 https://blog.csdn.net/qq_36305492/article/details/90438210这几天需要往U盘里读写数据,需要升级单片机和向USB里写入测量数据。所用的芯片是STM32F105RB,注意必须要有OTG的功能的芯片才可以的单板驱动USB向其内部读写数据,没有OTG功能只能做从机我理解为可以和电脑连接后STM32内部flash做为U盘....转载 2019-08-19 18:45:43 · 5327 阅读 · 0 评论 -
USB+HOST+FATFS
转载https://blog.csdn.net/zcshoucsdn/article/details/78944536原创 2019-08-10 15:26:42 · 551 阅读 · 0 评论 -
STM32 SPI配置
用stm32的库进行深入SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。四根线MISO 主设备数据输入,从设备数据输出。MOSI 主设备数据输出,从设备数据输入。SCLK时钟信号,由主设备产生。CS从设备片选信号,由主设备控制。外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节原创 2017-02-15 16:38:50 · 16493 阅读 · 1 评论 -
volatile
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo转载 2017-10-10 14:59:29 · 193 阅读 · 0 评论 -
stm32 timer 的三个函数
先说TIM_ARRPreloadConfig设置为DISABLE 和ENABLE的问题,他的作用只是允许或禁止在定时器工作时向ARR的缓冲器中写入新值,以便在更新事件发生时载入覆盖以前的值。在开始初始化的时候你已经把" TIM_TimeBaseStructure.TIM_Period=2000; //ARR的值 ",后来也一直是这个值,原因是你没有编写中断服务函数或者你在中断服务函数中根本就原创 2017-09-18 14:41:25 · 1030 阅读 · 0 评论 -
JTAC STLINK 接口
下面为ST-Link/V2 SWIM接口定义:仿真器端口连接目标板功能1. VDDMCU VCC连接STM8目标板的电源VCC2. DATAMCU SWIM pin连接STM8目标板的电源SWIM PIN3. GNDGND连接STM8目标板的电源GND4.原创 2017-04-24 14:41:15 · 1994 阅读 · 0 评论 -
STM32 时钟配置
一、在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤PLL为锁相环倍频原创 2017-05-04 16:19:05 · 320 阅读 · 0 评论 -
STm32 boot0 boot1
不同的下载方式对应STM32启动方式也不同,如下图是STM32三种启动方式:BOOT0BOOT1启动模式0XUser Flash memory(从用户闪存存储器启动)10System memory(从系统存储器启动)11Embedded SRAM(从内嵌SRAM启动)原创 2017-05-04 15:20:57 · 980 阅读 · 0 评论 -
启动文件重复引起的错误
将CAN程序由V2.0.1的库升级为V3.3.0的时候,编译出现错误:.\Obj\CAN_BUS_TEST.sct(7): error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.原因:项目中同时包含以下启动文件, startup_stm32f10x_hd.s原创 2017-05-02 16:46:45 · 946 阅读 · 0 评论 -
STM32 GPIO说明
GPIO基本结构第一:浮空输入模式;在这张图上,阴影的部分处于不工作状态,尤其是下半部分的输出电路,实际上是与端口处于隔离状态。黄色的高亮部分显示了数据传输通道,外部的电平信号通过左边编号1的I/O端口进入STM32,经过编号2的施密特触发器的整形送入编号3的“输入数据寄存器”,在“输入数据寄存器”的另一端(编号4),CPU可以随时读出I/O端口原创 2017-03-30 10:40:44 · 663 阅读 · 0 评论 -
STM32 外部中断Exti
外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独立的屏蔽。挂起寄存器保持着状态线的中断要求。19个中断如下:17——EXTI线16连接到PVD输出18——EXTI线17连接到RTC闹钟事件19——E原创 2017-03-29 16:38:19 · 1653 阅读 · 1 评论 -
stm32+ADs1246
ADS1246是TI公司大致在2009年中期推出的24位ADC,最高采样速率可达2Ksps,其为单通道器件,与之相对应的还有ADS1247和ADS1248三通道器件,但特性并非完全一致。据TI资料介绍,ADS1246在ADS1247/ADS1248功能上做出简化,保留了其部分特性。本次设计,需要用到24位单通道转换器件,于是考虑用到ADS1246,主控制器用STM32L系列。以下为ADS1246的原创 2017-02-14 11:24:37 · 3705 阅读 · 0 评论 -
ksps
ksps kilo Samples per Second 表示每秒采样千次,是转化速率的单位。 所谓的转换速率(Conversion Rate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率原创 2017-02-14 11:36:55 · 3390 阅读 · 0 评论 -
STM32 RTC
Ⅰ、概述RTC(Real Time Clock)是实时时钟的意思,它其实和TIM有点类似,也是利用计数的原理,选择RTC时钟源,再进行分频,到达计数的目的。该文主要讲述关于RTC的秒中断功能,这个功能类似SysTick系统滴答的功能。RTC秒中断功能其实是每计数一次就中断一次。注意,这里所说的秒中断并非一定是一秒的时间,它是由RTC时钟源和分频值决定的“秒”的时间,当然也是可以做到转载 2017-02-20 11:44:00 · 791 阅读 · 0 评论 -
STM32一定时器产生不同频率的PWM
一 最简单的方法TIMx->PSC 预分频 直接写寄存器TIM3->ARR=9999;//改变频率 0~9999 共一万个数TIM_SetCompare3(TIM3,5000);//占空比频率://Fpwm = 72M / ((TIM3->ARR+1)*(7199+1))(单位:Hz)占空比://duty circl原创 2017-02-09 15:20:38 · 7010 阅读 · 1 评论 -
stm32 kei4 开发环境搭建
1 下载stm32F10x的官方库http://www.st.com/web/en/catalog/tools/PF257890 2 新建工程工程名设为stm32_demo,选择芯片型号为STM32F103B,如图,因为下载的stm32库中有启动代码,所以这里选择"否",不拷贝启动代码。在工程文件下,新建Startup 、原创 2017-01-17 11:53:34 · 1934 阅读 · 0 评论 -
AT24CXX系列程序
存储空间分配AT24C02A,2K 串行 EEPROM:共 32 页,每页 8 字节,寻址字需 8 位。AT24C04A,4K 串行 EEPROM:共 32 页,每页 16 字节,寻址字需 9 位。AT24C08A,8K 串行 EEPROM:共 64 页,每页 16 字节,寻址字需 10 位。AT24C16A,16K 串行 EEPROM:共 128 页,每页 16 字节,寻址字需原创 2017-05-06 11:39:14 · 6213 阅读 · 0 评论 -
keil 简介
熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的。但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的。本文以MDK V4.03为例,详细的写一下MDK的设置、界面、工具。可能会有些杂乱,但我想所涉及的东西都是最常用的;可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言。正式开始。 首先启动MDK.转载 2017-04-25 08:37:44 · 19760 阅读 · 0 评论 -
最近一个低级错误犯了两次
有时定义变量 int a;for(int i=0;i{a+=i;}最终a是一个不可预见的值并不是0~9的和因为a没有初始化int a=0;//就好了好可笑 哈哈哈原创 2017-05-17 11:35:46 · 445 阅读 · 0 评论 -
SPI 的 CPOL CPHA
详解SPI中的极性CPOL和相位CPHA SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要原创 2017-09-15 14:53:40 · 619 阅读 · 0 评论 -
stm32 exti 5~9 中断源区分
void EXTI9_5_IRQHandler(void){ u32 Temp = 0x00; PEout(2) = ~PEout(2); Temp = EXTI->PR; //取读是那个引脚的中断 switch(Temp) { case Exti_From_Pin8: EXTI_ClearITPendingBit(E原创 2017-06-06 10:27:07 · 21568 阅读 · 3 评论 -
stm32 窗口看门狗
独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。图1 窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;当窗口看门狗转载 2017-08-25 15:01:15 · 451 阅读 · 0 评论 -
STM32 定时器
1 TIM_ITConfig(TIM3, TIM_IT_CC1,ENABLE); 必须在之前重写一下比较寄存器void USART1_IRQHandler(void){ if(USART_GetITStatus(USART1, USART_IT_RXNE)!=RESET){u16 capture; USART_ClearITPendingBit(USAR原创 2017-08-22 10:20:35 · 729 阅读 · 0 评论 -
STM32 卡在启动文件 B .处
1 程序卡在 B .处 ENDP ALIGN 是因为有未处理的中断,或者说没找到中断处理函数。在stm32f10x_it原创 2017-08-21 15:30:42 · 5269 阅读 · 0 评论