- 博客(17)
- 收藏
- 关注
原创 使用mid360基于FAST-LIO2(建图)MOVE-BASE(导航)并用串口发送
遇到的各种各样的问题都需要自己慢慢解决,切忌耐心,网上帖子很多我们要先找到自己配置时的问题在哪,再去找相应的方法,而不是一同乱试。
2025-04-12 12:22:20
441
原创 铁头山羊学习笔记 7.1-7.2 EXTI和按钮实验(附代码)
1.我们是先对按钮和GPIO进行初始化2.因为我们选择了PA5和PA6所以选择线的时候是line5和line6进行监听上升沿,所以我们要为EXTI5和6分配引脚。3.初始化EXTI,线5线6,中断模式,上升沿,闭合开关4.配置中断NVIC,因为是线5和线6监听其中断事件名称为EXTI9_5,抢占优先级和子优先级都是0,闭合开关5.编写响应函数总的流程图如下。
2025-04-07 20:26:07
301
原创 铁头山羊学习笔记5.4-5.6 SPI初始化及数据收发(附代码)
首先使能时钟并使用重映射,对应引脚在标注中。SCK是时钟信号,MISO主收从发,MOSI主发从收,普通IO口与NSS相连去选择从机。
2025-04-01 17:04:00
324
原创 铁头山羊学习笔记 5.1-5.2 SPI电路结构和通信 按钮驱动程序编写
首先介绍一下电路的结构和通信流程以及波形现在需要通信设备1,只需要将NSS1写0低电平,其他2 3 写1高电平,SCK发送时钟信号,MOSI发送一个比特位也会让MISO返回一个比特位。极性如果在空闲状态下,SCK时钟信号是低电压则是低级性,高电压则是高极性。相位可以看到图示有两个阶段一个是准备阶段一个是采集阶段,准备阶段是可以变换电压从而写0写1,而采集阶段要求电压稳定不变。SPI时钟信号的四种模式传输顺序数据宽度。
2025-03-31 15:56:32
126
原创 铁头山羊学习笔记 4.6 软I2C(附代码)
停止位的话,首先要给SCL和SDA拉低写0,然后延时1us;最后SDA拉高写1延时1us。因为我们不知道SDA一开始是高电压还是低电压,如果SDA是高电压,那我们拉低SDA,此时SCL也是高电压,这不就是给了一个起始位制造了一个下降沿了吗。这里我们拿出一比特位出来,可以分为两个阶段,当SCL=0时,表示发送方准备数据,SDA用高低电压来表示0和1,然后延时1us,SCL写1接收方读取数据。延迟函数编写的原理很简单,for循环里面执行一次需要1/8 us,所以要延迟多少us就循环8×想要延迟多少秒次。
2025-03-17 22:09:05
165
原创 铁头山羊学习笔记 4.4-4.5 I2C写数据 读数据(附代码)
I2C模块内部结构发送数据函数接下来说一下编程思路吧,我按照模块化的思想一一解释。第一步先用BUSY标志位判断总线是否空闲,若BUSY=1说明繁忙,则一直在循环里。第二步需要发送起始位。我们需要向SDA控制里面的START写1,所以用到了I2C_GenerateStart这个函数,然后去判断SB标志位是否发送完成,当SB=1表示起始位发送完成,所以和之前一样用到了一个while循环,如果起始位未发送则SB=0卡在循环里了。
2025-03-17 16:15:18
950
原创 铁头山羊学习笔记 4.3 I2C模块的使用方法 (附代码)
占空比指在一个周期内低电压所占的份数与高电压所占的份数之比。只有在快速模式下可以设置时钟信号的占空比,一般没有特殊要求就选择2/1的。这个编程接口就是对I2C进行初始化,和GPIO的那个初始化函数差不多的东西。传输速度模式选择,单片机支持标准和快速模式。根据上图选择对应的引脚和GPIO模式。
2025-03-14 19:40:41
202
原创 铁头山羊学习笔记 4.1-4.2 I2C基本电路结构 I2C通信协议(附代码)
前面我们学习了串口通信,串口只能实现几个设备的通信,而I2C可以实现100多个数据之间的通信。有两条线一条时钟线一条数据线,时钟线控制数据发的快慢速度,数据线控制要发的数据,所以引脚都应该设置为开漏模式。就是需要所有为1有一个为0就为0。第一种情况当所有为1的时候在开漏模式下即为高阻抗,所以scl是是断路,此时上拉电阻为高电压,输出1。第二种情况有一个是0则那么接低电压,输出为0。主机如何发送时钟信号的?
2025-03-14 14:52:58
160
原创 铁头山羊学习笔记 3.7 封装常用功能(这章没啥好看的附代码)
本章没啥好说的,教了一下怎么用他写的USART库文件,不懂为什么不也写一个初始化的函数进行封装在里面。
2025-03-13 22:03:37
101
原创 铁头山羊学习笔记3.5-3.6 格式化打印字符串 接受数据(附代码)
_____weak表示fputc这个函数是可以重写的,由于我们现在没有控制台,所以想通过串口打印字符串然后发送出去。串口接受如下:现在我们想知道单片机的时间,在铁头山羊给的模版中delay.h提供了一个这样函数GetTick()获取当前时间,然后经过我们简单的C语言处理,得到了小时分钟秒毫秒。
2025-03-13 20:16:57
384
原创 铁头山羊学习笔记 3.3-3.4为串口初始化IO引脚 发送数据实验(附代码)
在前面我们提起过GPIO的8种模式里面的通用与复用这一概念,在这里我们用的就是复用。如图,我们现在用串口通信发送一个Hello,CPU不是直接对IO引脚发送数据,而是先对串口模块再对IO引脚发送数据,所以应该是复用。现在我们找到了USART1 TX和RX对应的IO引脚在PA9和PA10,我们要使能这个引脚对GPIO初始化,还需要知道GPIO的模式还有输出最大速度。下表就提供了配置对应的GPIO配置。
2025-03-13 13:39:41
1092
原创 铁头山羊学习笔记 3.1-3.2 串口通信协议
一字节八位 假如写入一个1 则是从低位写入。串口通信实现双向通信举例子写27和字符串Hello说明,值得注意的是他十进制转二进制的方法。说明了四种方式分别是8位和9位有校验位和无校验位。其中8位无校验位,9位有校验位是一个字节。校验位分别有奇校验和偶校验,分别是数数据帧1有多少个,若是奇数个且用的是奇校验则校验位不用补1。
2025-03-07 15:21:08
156
原创 铁头山羊学习笔记 2.3-2.4LED闪灯实验 GPIO4种输入模式
由工程图可知,LED灯接在PC13上,且是标准的开漏模式,所以IO引脚工作模式应设置为开漏。时钟就像是心脏一样给手去供血,在这里使能时钟其实就是使能GPIO。在点灯实验中,用到了1和2两个接口,一个进行初始化,一个进行写0写1的操作。(RESET写0,SET写1,由于是开漏模式所以写1的时候不亮,写0的时候凉)需要对结构体进行定义函数需要的参数也不多也就三个2.4。
2025-03-06 22:30:22
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人