MCU学习
文章平均质量分 74
本专栏主要是记录学习和总结当前STM32,MSP432,TM4C129等主流单片机笔记,此外涉及编码器,步进电机,霍尔传感器等诸多模块。唯一缺点是更新慢
嵌入式历练者
一个在嵌入式领域钻研的学习者,纸上得来终觉浅,绝知此事要躬行。目前从事BMS电池管理系统软件开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UDS (Unified Diagnostic Services)汽车诊断标准协议
2. ECU 复位(0x11)服务 ECU Reset 客户端使用 ECU 复位服务来请求服务端重置。Note:①ECU 复位肯定响应消息(如果需要)应在服务端执行重置之前发送。含义如何解释:当ECU复位以后,“丢掉记忆,重新开始,它就不记得之前干过(收到什么指令)什么!”故执行复位前,应该先肯定响应消息后复位。②还有一点值得注意:服务端重置成功后,将激活默认会话。3. 安全访问(0x27)服务 Security Access 使用该服务的典型示例如下所示:客户端请求“种子”,服务端发送“种原创 2023-08-15 17:21:40 · 781 阅读 · 0 评论 -
基于UDS on CAN的bootloader
Tester(诊断方)ECU(汽车电控单元)3.UDS的软件实现:协议栈(Core)和应用程序。2.UDS的硬件实现:CAN总线和诊断接口。TP:Tester Present待机握手。Bootloader——三段式。原创 2023-08-14 14:27:25 · 657 阅读 · 0 评论 -
【MCU学习】GD32F427VG开发
4.参考手册:GD32F4xx_User_Manual_Rev2.8_CN。5.数据手册:GD32F427xx_Datasheet_Rev1.5。3.GD32F4xx_固件库使用指南_Rev1.2。1.GD232F4xx的Keil芯片支持包。2.标准固件库和示例程序。原创 2023-08-03 09:21:19 · 1140 阅读 · 0 评论 -
《嵌入式蓝桥杯》STM32单片机+USART2+DMA+IDLE空闲中断来接收数据
作者 : Eterlove .一笔一画,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants!该文章为原创,转载请注明出处和作者. 你是怎么接收一帧数据的(这个其实不应该由面试官问,而是由你自己补充全面),如果你说采用帧头、帧尾判断的方式接收的,那么这道题还是给你50分,但是你说用空闲中断,那么70分以上,如果你说用DMA+空闲中断的方式接收的,那么90分以上...原创 2022-04-07 21:01:09 · 3554 阅读 · 13 评论 -
《嵌入式蓝桥杯》定时器TIM3的PWM输出和TIM2的输入捕获测量频率记录
作者博客主页 作者 : Eterlove 一笔一画,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants!该文章为原创,转载请注明出处和作者声明:这段时间较忙,相关知识点分析讲解后面抽时间补上。1.学习记录 用定时器TIM3来产生一个PWM的波形【频率可调,占空比可调–>相对可调】,然后用TIM2的输入捕获功能测量该波形的频率。PA1---->TIM2_CH2PA2---->TI.原创 2022-04-04 18:33:46 · 4455 阅读 · 5 评论 -
问题记录:error: #268: declaration may not appear after executable statement in block
//编译代码错误..\Sre\Input_Capture.c(29): error: #268: declaration may not appear after executable statement in block GPIO_InitTypeDef GPIO_InitStructure;..\Sre\Input_Capture.c(36): error: #268: declaration may not appear after executable statement in bl原创 2022-04-04 14:25:45 · 1617 阅读 · 1 评论 -
I/O 操作的那些事儿:轮询 ,中断 , DMA ,通道
转载于:I/O 操作的那些事儿:轮询 ,中断 , DMA ,通道 I/O 设备是计算机的重要组成部分,介于处理器与 I/O 设备交互的复杂性,I/O 操作一直是高级语言开发者比较难掌握的一个技术点。 因为高级语言对 I/O 操作的封装基于操作系统提供的系统函数,而这些系统函数的调用方式又与其硬件层的结构与工作机制息息相关,所以想要彻底搞懂 I/O 操作的那些函数,必须对其基于的底层设备的工作方式有一定转载 2022-03-31 15:10:22 · 2432 阅读 · 1 评论 -
《嵌入式蓝桥杯》考点:LCD界面和模式切换问题
作者博客主页 作者 : Eterlove 一笔一画,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants!该文章为原创,转载请注明出处和作者对于每年的蓝桥杯来说,界面切换和模式切换是常考点,在最近的第10,11,12届省赛中都有考察到,花点时间就能掌握它。原创 2022-03-28 23:56:47 · 4807 阅读 · 1 评论 -
蓝桥杯I2C例程的学习和EEPROM应用
蓝桥杯嵌入式比赛中,官方在资源数据包给出了I2C的的驱动程序,我们只需要在此基础上应用即可(建议最好搞懂I2C的底层原理)。对于I2C知识点的考察集中在EEPROM部分,这里贴出代码。1.官方例程I2C.c/* 程序说明: CT117E嵌入式竞赛板GPIO模拟I2C总线驱动程序 软件环境: Keil uVision 4.10 硬件环境: CT117E嵌入式竞赛板 日 期: 2011-8-9*/#include "stm3原创 2022-03-28 16:00:17 · 5567 阅读 · 0 评论 -
第十二届省赛嵌入式设计与开发《停车计费系统》
前言刷了几套蓝桥杯省赛程序题目,心有所感,故写下文章记录一下,本篇文章记录的是第十二届省赛嵌入式设计与开发程序设计题目。这套题的考察重点和难点在STM32的串口和字符串的处理,难点在于细节方面,对字符串考察很细。其他知识点虽有考察,但比较常规(参考往年题目思路即可)。文章重点讲解字符串的处理和小算法。(一) 题目分析:使用串口获取车辆进、出停车场信息和时间,并能够输出计费信息。分析:1.车辆 出车库要计算停车时间,然后根据价格计算并输出计费信息。2.接下来,我们要考虑如何去判断小车是进车库还原创 2022-03-27 23:07:07 · 3344 阅读 · 6 评论 -
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState){ /* Check the parameters */ assert_param(IS_ADC_ALL_PERIPH(ADCx)); assert_param(IS_FUNCTIONAL_STATE(NewState)); if (NewState != DISABLE) { /* Enable the selected ADC原创 2022-03-24 13:39:12 · 2965 阅读 · 1 评论 -
嵌入式STM32开发中关键字_IO
转载出处:https://blog.youkuaiyun.com/u010058695/article/details/101016142作者:jianwang16在开发嵌入式过程中,常会看到_IO 修饰符,这两个修饰符是在Core_cm3.h中被重定义:/* IO definitions (access restrictions to peripheral registers) */#ifdef __cplusplus #define __I volatile /*!转载 2022-03-14 22:53:58 · 798 阅读 · 0 评论 -
STM32的SysTick定时器记录一篇
前言我们经常使用延时来完成一些项目需求,常利用CPU空循环达到的软件延时来实现,其方法优点简单,但会出现时间精度不高的问题,而且这是一个弊端很明显的做法,因为在延时函数进行时系统无法进行其它操作,这样大大降低了系统的效率。第二种方式是用定时器TIM来实现精准延时,但显得资源十分浪费,这时STM32的SysTick定时器就派上用场了。原创 2022-01-30 08:30:00 · 1224 阅读 · 5 评论 -
《基本功阅读Datasheet篇》STM32Reference manual值得注意的点(ADC)
凡是芯片数据手册中的note,都必须仔细阅读,一般这都是能否正确使用、或能否把芯片用好的关键之所在。Note: Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be transferred in dual ADC mode using DMA thanks to master ADC1.原创 2022-01-24 09:00:00 · 960 阅读 · 1 评论 -
《蓝桥杯备赛》STM32ADC的学习,值得一看【完整源码】(五)
1.STM32F10xxx微控制器系列产品容量小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。互联型产品是指STM32F105xx和STM32F107xx微控制器。原创 2022-01-22 18:26:26 · 3893 阅读 · 17 评论 -
stm32f10x.h P224行~269行
stm32f10x.h P224行~269行#ifdef STM32F10X_MD ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */ USB原创 2022-01-18 09:00:00 · 255 阅读 · 0 评论 -
《蓝桥杯备赛》CT117E嵌入式竞赛板LCD驱动库的使用(带完整源码)
1. 在LCD显示文字和数据2. 通过按键KEY1来切换高亮文字颜色。思路:定义一个全局变量choose=0,通过KEY1外部中断,然后在中断服务函数中来回切换choose的值0和1,在显示函数window()通过if判断choose的值,来高亮显示相应颜色。原创 2022-01-15 20:48:07 · 6594 阅读 · 4 评论 -
《蓝桥杯备赛》STM32GPIO库函数GPIO_ReadInputDataBit()
GPIO_ResetBits(GPIOx ,GPIO_Pin_x)GPIO_SetBits(GPIOx ,GPIO_Pin_x)重点介绍库函数 *GPIO_ReadInputDataBit()编写按键的驱动程序,主要有两种方式(1)循环扫描(2)外部中断,具体问题具体分析。使用循环扫描方式,就需要不断检查按键的状态,也就是与按键相关的GPIO某个引脚的状态,可在while(1)中使用GPIO_ReadInputDataBit()库函数检测原创 2022-01-14 18:45:53 · 6921 阅读 · 1 评论 -
《蓝桥杯备赛》STM32外部中断void GPIO_EXTILineConfig()
STM32中断控制器支持19个外部中断/事件请求。(1)很多人误认为STM32只支持16个外部中断/事件请求,因为他们走入了 “GPIOA有PA0~PA15共16个,所以只支持16个外部中断/事件请求” 思维误区!其实还有三个平时较少用到的。(2)在STM32库函数程序中,并没有单独的EXTI5_IRQHandler,同理EXTI6,EXTI7,EXTI8也没有...其中断服务函数名已经定义好,参见startup_stm32f10x_xx.s,不能用户自己定义,它关系到进入中断服务函数的入口地址。原创 2022-01-14 13:32:40 · 1314 阅读 · 7 评论 -
蓝桥杯CT117E Rev 1.1开发板遇到的编译和下载问题
在stm32f10x.h 95行和99行可得:USE_STDPERIPH_DRIVER,STM32F10X_MD原创 2022-01-12 17:59:26 · 1945 阅读 · 0 评论 -
第九届省赛嵌入式设计与开发(客观题)解析(上)
第九届省赛嵌入式设计与开发(客观题)解析(上)CM3内核采用的就是三级流水线,当然还有更复杂的多级流水线,但不是指令流水线级数越多越好,流水线级数的多少需要根据微处理器的具体要求来确定原创 2022-01-10 16:55:58 · 3779 阅读 · 10 评论 -
uC/OS-III 内核实现与应用开发实战学习(一)
我们所说的堆栈其实是两个东西,分别是堆和栈,当然如果有人给你说起堆栈这个名词,那他想要表达的一定是栈这个概念。除了放置全局变量是在堆区,其他像局部变量全部分配在栈区,栈是由高地址向低地址生长的。这一点与堆不一样,堆由低地址向高地址生长。全局变量由编译器分配堆空间,除了堆和栈来分配内存空间的方式,还有一种动态内存的方式,就是用malloc函数动态分配内存和free释放内存做到。在单片机中,有内存的地方就是RAM和Flash原创 2022-01-10 00:28:51 · 1795 阅读 · 7 评论 -
《朝朝暮暮,沉淀过往,迎来新光》我的2021年终总结
一转眼就2022年了,谨以此博客写下2021年的年度历程!后来,因为前期的积累和无数次踩坑,我养成了从实践中学习,理论知识很有用,但要在实践中慢慢琢磨琢磨,才能真正体会到理论的重要性。正所谓:纸上得来终觉浅,绝知此事要躬行,于是我开始用博客来记录下我的学习历程,走过的路,踩过的坑。有了输入,然后用博客输出的那种酣畅淋漓的感觉真的太爽了。我想把嵌入式方面的知识梳理一遍,以博客形式的输出来,嵌入式,万丈高楼平地起,一砖一瓦皆根基,后续将出几篇SPI和I2C通信的编程和实践敬请期待。......原创 2021-12-31 00:30:07 · 5693 阅读 · 7 评论 -
手撕startup_stm32f10x_hd.s启动文件源码
__initial_sp是栈的结束地址,也就是栈顶地址。因为栈是由高地址向低地址生长。(如何理解栈的地址是由高端地址向低端增长)__heap_base为堆基址(开始地址),__heap_limit为堆的结束地址,再强调一遍:堆是由低地址向高地址生长。堆的大小为0x00000200(512B)原创 2021-12-28 02:16:16 · 714 阅读 · 1 评论 -
SWD是一种串行调试接口
ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,编程功能:可烧写FLASH ROM、EEPROM、AFR等;仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快.翻译 2021-12-27 18:23:21 · 71989 阅读 · 0 评论 -
GPIO_SetBits(GPIOx,GPIO_Pin)
#define GPIO_Pin_0 ((uint16_t)0x0001) /*!< Pin 0 selected */#define GPIO_Pin_1 ((uint16_t)0x0002) /*!< Pin 1 selected */#define GPIO_Pin_2 ((uint16_t)0x0004) /*!<原创 2021-12-26 21:16:18 · 10695 阅读 · 2 评论 -
《手把手教你阅读Datasheet》写ST7735s驱动程序(SPI通信)
计算机最让人着迷之处,也是最伟大的思想之一就是“封装”,当然也让后来者的学习道路留下了重重障碍,颇有一种“只见树木,不见森林”的现象 在《Linux kernel development》一文中,序言有这样一句话:但是所有人都必须直面一个问题:内核的学习曲线变得越来越长,也越来越陡峭。系统规模不断扩大,复杂程度不断提高。虽然现在的内核开发者对内核的掌握越发炉火纯青,但新手却无法跟上内核发展的步伐,长此以往将出现青黄不接的断层。对于求知欲特别强的人,有时候一定要学会“浅尝辄止”......原创 2021-12-26 17:58:29 · 26343 阅读 · 15 评论 -
《玩透嵌入式C的角角落落》深入分析sprintf和printf函数
在单片机调试中,我们常用printf打印有用信息来调试我们的程序,但是却不能直接使用,究其原因,在于标准C语言printf函数的底层实现的机制,已经规定输出流输出到PC端的显示器。这也是单片机调试时,为什么要对printf函数进行重定向的原因,所谓重定向,这里涉及流的概念,即“重新定义信息流的流动方向‘’——我从哪里来,又要到哪里去”。即要实现在串口或者LCD上显示,必须要重定向原创 2021-12-25 23:02:02 · 4509 阅读 · 4 评论 -
苦练基本功《如何阅读看懂一篇Datasheet》
如果你是IC design, 可能更注意application note,diagram , reg file 这种给你设计以参考的部分。如果是你硬件工程师,你会注意电器特性,pin list ,封装尺寸等几个章节。如果你是Marketing, 你会关注feature list , reference design , 电器特性等章节。如果你是software engineer , 你需要看寄存器和软件章节。如果你是project manager,你需要关注所有章节。如果你是学生,就把它当科技英语转载 2021-12-24 18:36:36 · 20292 阅读 · 0 评论 -
2021年电子竞赛四天三夜征程—-信号失真度测量装置(A题)
2021大学生电子设计大赛,我们选择的题目是信号失真度测量装置(A题)一笔一画,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants! 四天三夜的电赛在忙碌中结束了,今年为国赛,无论哪个方面都很重视电赛,也为我的大学生活留下了浓墨重彩的一笔。谨以此写下这篇博客留念,本篇博客写下一些体会和感受。 如果上天再给我一次机会,我一定会说:评委老师,把谐波幅度稍微给大一点吧,我们装置至少能接近标准答案!原创 2021-12-14 18:21:22 · 44051 阅读 · 41 评论 -
《程序是调试出来的》嵌入式Keil5的调试技巧
调试手段是教不会的,而是自己亲身实践出来的。那笔者撰写这篇文章的意义何在?一个人的发展始终会受限于自己的眼界,会当凌绝顶,一览众山小,笔者想要带你们览下群山风景,至于最终能不能攀登上来就看你们各自的本事和毅力,本文只是起到一个抛砖引玉的作用罢了。 在笔者的经历中,用到Keil5调试的板子当属STM32单片机,当然,Ti芯片的集成调试环境CCS这方面也不错,当时的快速查看函数定义和显示函数调用层次比Keil5更胜一筹。本文主要结合Keil5工具讲一下调试技巧。...原创 2021-12-10 23:51:06 · 13226 阅读 · 32 评论 -
只看不敲,神也学不好C---------嵌入式经典书籍经验分享
目录1.C语言经典2.单片机系列3.Python方面4.嵌入式LWip协议5.Android6.C++经典书籍7.Linux开发8.版本控制Git9.其他的书籍该文章为原创,转载请注明出处和作者:1.C语言经典第一个我是学嵌入式的,C语言必须拿下,这里只推荐进阶书籍,初学看视频或者随便找本教材(能讲清楚C语法就行,这个时候初学者不要在选书上浪费时间),接下来就敲 敲 敲!犯的错误越多越好,只看不敲,神也学不好C,这句话我说的。...原创 2021-11-23 20:51:16 · 16418 阅读 · 24 评论 -
总结一下2021年全国大学生电子设计大赛A题用到的MSP432P401开发板
电赛中MSP432P401R板子用到了A题上面,A题的基本思路:采用的是MSP432P401R做主控芯片,采集数据的也是这块板子的AD采集,经过FFT处理后显示在液晶屏上和通过蓝牙发送数据手机端,显示波形和THDx值和归一化幅值。感兴趣电赛复盘的小伙伴可以看看这一篇博客: 首先,没有什么资料比看官方手册显得很准确,熟练阅读芯片手册是一个优秀工程师所应具备的能力! 1.阅读《MSP432产品培训手册》知道ADC14具有14位AD采集和1Msps采样速率。...原创 2021-11-15 13:39:53 · 9227 阅读 · 33 评论 -
2021-08-18我的第一篇博客——STM32单片机的开发环境Keil5(MDK)的安装与破解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录目录文章目录一、Keil5的安装1.安装包的使用二、Keil5的破解1.引入库2.读入数据总结前言 不瞒大家,从我开始接触到STM32单片机起,就觉得会玩精通的大佬很厉害,哈哈,但是我当时安装开发环境Keil5的时候,却吃了点苦头,啥?安个软件还需要破解它?为什么一样的步骤别人能破解它,我不能?接下来我们一探究竟,不过再次之前我决定做出以下声明:1.未经原作者允许不得抄袭本文..原创 2021-08-18 22:07:18 · 10519 阅读 · 14 评论
分享