记录一下学习过程1.端口复用STM32有很多内置外设,这些外设的外部引脚是与GPIO复用的。默认情况下,这些GPIO口只能作为普通的IO口输入输出,把一个GPIO口的引脚复用为内置外设的功能引脚,通过这些GPIO口就可以使用内置外设了,这个过程叫做复用。但不是每一个引脚都用对应的复用功能的。下图是stm32c8t6引脚的定义,其中默认复用功能一列就是对应GPIO口可配置为的复用功能。图片来自https://blog.csdn.net/xinzhi1992/article/details/125412795 端口复用的流程:1.开启对应的GPIO时钟2.开启对应的外设的时钟3.将GPIO口配置为
上一次使用舵机只是草草了解,只大概知道是pwm控制的,这次又使用到了舵机,本以为复制上次代码就可以调试成功,没想到却弄了很久。我使用的是STM32f103c8t6,用的是定时器4。这个f1板子的定时器各个通道io口如下图所示:在开始之前我们要了解控制舵机需要的一个周期是多少秒,是20ms(毫秒),这就意味着,我们配置输出的一个周期必须是20ms,这就需要我们经过分频和重装载值来决定。当初我在这里卡了很久,因为不会计算这个,上网看了很多文章,大家讲的不是很明白,所以我今天详细和大家说说如何分频和写重装载值首先,我的板子主频是72Mhz,这就意味这一秒种可以计72Mhz的数,可定时器只有16位呀,
STM32的程序下载有多种方法:USB、串口(最常用的,最经济)、(JTAG、SWD)(协议不同。可以硬件调试)等,这几种方式,都可以用来给STM32下载代码。(串口只能下载代码,并不能实时跟踪调试,而利用调试工具,比如ST-LINK,JLINK和ULINK等就可以实时跟踪程序,从而找到你程序中的bug)一、串口:1安装驱动.2检查电脑的设备管理器的USB串口:USB-SERIAL CH340(COM*),3下载串口下载软件:例如flymcu,下载程序5下载时程序文件:找到对应的hex文件(与keil设置输出位置有关)“编程后执行”:当选中该选项之后,可以在下载完程序之后自动运行代码。否则,还
目录:1.独立看门狗介绍1.1.独立看门狗简介1.2.独立看门狗功能描述1.3.独立看门狗工作框图2.独立看门狗实验2.1.cubemx配置2.2.具体代码实现3.独立看门狗的相关寄存器3.1.键寄存器(IWDG_KR)3.2.预分频寄存器3.3.重装载寄存器(IWDG_RLR)3.4.状态寄存器(IWDG_SR)4.窗口看门狗介绍4.1.窗口看门狗简介4.2.窗口看门狗的结构框图4.3.计数器和窗口值的设置5.窗口看门狗实验5.1.cubemx配置5.2.具体代码实现6.窗口看门狗的相关寄存器6.1.控制寄存器(WWDG_CR)6.2.配置寄存器(WWDG_CFR)6.3.状态寄存器(WWD
HardFault异常调试异常产生的原因软件硬件定位错误方法一ShowCallerCode方法二根据栈中存的寄存器值,定位问题参考资料在进行单片机的开发时,我们有时会遇到程序运行异常,进入到了hardfault中断。异常产生的原因软件软件的错误是比较常见导致单片机进入hardfault的原因堆栈溢出(堆栈溢出可能导致hardfault,但不一定所有的栈溢出都会触发hardfault)数组越界野指针非对齐访问…硬件供电不稳电磁干扰极端的运行环境…定位错误方法一ShowCallerCode在进入hardfault中断时打断点,然后查看callstack+local,右键,选择showcallerc
一、串口的基本概念【数据组成】串口的通讯协议由开始位,数据位,校验位,结束位构成。【数据结构】一般以一个低电平作为一帧数据的起始,接着跟随8位或者9位数据位,之后为校验位,分为奇校验,偶校验和无校验,最后以一个先高后低的脉冲表示结束位,长度可以设置为0.5,1,1.5或2位长度。【奇偶校验原理】统计发送数据中高电平即’1’的奇偶,将结果记录在奇偶校验位中发送给接收方,接收方收到奇偶校验位后和自己收到的数据进行对比,如果奇偶性一致就接受这帧数据,否则认为这帧数据出错。如下图所示:一个8位数据位,1位奇偶校验位,1位结束位的串口数据帧。上图的解释如下:注意事项:一般进行串口通讯时,收发双方要保证遵
本章节主要讲解点亮LED的基本原理,以及GPIO框图的讲解。 如何点亮LED(输出) 首先我们查看原理图,观察电路图中LED的连接情况,如下图可以看出我们的板子中LED一端通过限流电阻连接的PB0另一端连接的是高电平VCC,那么我们将PB0位置接地是不是灯就亮了,那我们就想办法在这一端通过单片机让这一端接地就可以了,具体怎么做到我们循序渐进后面一点点慢慢来。(和我使用的板子不一样也没有关系,原理是相通的我们学会原理其他的就不算问题了)。如何识别按键是否按下(输入) 如下图所示当我们的开关闭合时单片机IO口引脚处的电压为GND,这样我们就可以通过单片机读取
基于STM32的智能小车第一章基于STM32的智能小车方案设计第二章基于STM32的智能小车–电机驱动设计第三章基于STM32的智能小车–循迹设计第四章基于STM32的智能小车–避障设计基于STM32的智能小车基于STM32的智能小车前言一、控制舵机是什么?二、舵机SG901、舵机参数2、实物图和接线3、控制原理及PWM配置三、PWM控制1、PWM是什么?
使用STM32CubeMX过程中会遇到检查版本更新可用却无法打勾更新的情况解决方案是:1.桌面右键STM32CubeMX程序2.选择兼容性选项卡3.勾上以管理员身份运行问题解决
本文主要介绍,STM32从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的那个部分。基本流程如下1、确定启动方式 每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,也就是进入那种模式。boot0boot1启动模式说明0X从flash启动正常工作模式10从系统存储器启动用于串口下载程序11从内置SRAM启动用于程序调试2、初始化sp、pc指针当系统复位后,处理器从向量表中读取前八个字节,也就是两条指令,前四个字节存入MSP,后四个字节为复位向量,也就是程序执行的起始地址。