自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (1)
  • 收藏
  • 关注

原创 江科大32——IIC通信原理

接受一个字节:SCL低电平期间,从机将数据位以此放到SDA线上,(高位先行),然后释放SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间,SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接受之前,需要释放SDA)接受一个字节之后,要给从机发送一个应答位,目的是告诉从机还要不要继续发生数据,如果从机发送一个数据后,得到了主机的应答,从机就继续发送,如果从机没有得到主机的应答,从机就会释放SDA,交出SDA的控制权,防止干扰主机之后的操作。(主机在接受之前,需要释放SDA)

2023-04-06 17:19:56 544

原创 江科大32——USART发送数据包原理

只要通过包头包尾对齐数据,就可以严格知道那个数据是包头包尾,哪个数据是载荷数据,在接收载荷数据的时候不会判断它是否是包头包尾,在接收包头包尾时,会判断它是否属于包头包尾,用于数据对齐,经过几个数据包的对齐之后,剩下的数据包就不会出现问题了。,如果收到@就进入接收状态,在这个状态下接收数据,同时,这个状态还应该兼具等待包尾的功能。打包的方法可以自己设计,比如在XYZXYA数据流中,数据包的第一个数据即X的数据包,最高位置1,其余数据置0,接收数据后,判断最高位,如果是1就是X数据,接下来的数据就是Y和Z。

2023-04-04 14:04:54 1467

原创 江科大32——USART串口发送&串口发送+接收代码

初始化完成,只需调用特定函数就能完成发送和接收。要获取发送和接收的状态,调用获取标志位函数。2)GPIO初始化,把TX配置成复用输出,RX配置成输入。如果需要发送和接收,需要在开启USART之前加上。如果只需发送功能,直接开启USART就行了。1)开启USART和GPIO时钟。4. USARTFA发送数据函数。3)使用结构体配置USART。2.USART常用函数。

2023-04-03 17:17:10 3189 4

原创 江科大32——DMA代码分析

ADC1是结构体指针,指向的是ADC1外设的起始地址,访问结构体成员,就相当于加一个地址偏移,起始地址加偏移,就是指定的寄存器。表示常量,被它修饰的变量在程序中只能读,不能写。Tips:要想查某个寄存器的地址,可以先查这个寄存器所在外设的地址,然后再查这个寄存器的偏移地址(在外设寄存器总表里)。Tips: 变量或常量的地址是由编译器确定的,不同程序地址可能不一样,是不固定的。方向,传输计数器,是否需要自动重装,选择触发源,通道优先级等等。,开启触发信号的输出,比如需要调用DMA的中断,就需要调用。

2023-04-02 20:42:55 482

原创 江科大32——DMA学习

(比如想把Flash里的一批数据转运到SRAM里,需要软件触发,使用软件触发之后,DMA会以最快都速度把这批数据转运)如果进行外设到存储器的转运,就不能一股脑地转运了,因为外设的数据是有一定的时机的,这时就需要用硬件触发 (比如转运ADC的数据,就需要每个ADC通道转换完成后,硬件触发一次DMA再转运)触发一次转运一次,这样数据才是正确的,才是我们想要的效果,所以存储器到存储器的数据转运一般使用软件触发,外设到存储器要硬件触发。3.触发源必须有触发信号,触发一次,转运一次,传输计数器自减一次。

2023-04-01 19:54:09 1620

原创 江科大32——ADC

第一个就是在扫描模式下,启动列表之后,序列里面的每一个单独的通道转换完成后,不会产生标志位,也不会触发中断,不知道某一个通道是不是转换完了,只有在整个列表转换完成后才会产生一次EOC标志位,才能触发中断。不过也可以使用间断模式,在扫描的时候,每转换一个通道就暂停一次,当我们手动把数据转运走之后再继续触发,进行下一次转换,所以启动转换之后只能通过Delay延时的方式才能保证转换完成,但花的时间比较长。是量化编码花费的时间,因为是12位的ADC,所以需要花费12个周期,多的半个周期可能是做其他东西花费的时间。

2023-04-01 16:05:29 2062 1

原创 STM32——输入捕获

左边四个边沿输入信号引脚一旦有边沿,输入滤波和边沿检测电路就会检测到上升沿,让输入捕获电路产生动作,所以右边一侧和外部中断差不多,都是检测边沿信号,输入滤波的动作是控制后续电路,让当前CNT的值,所存到CCR寄存器中,对比输出比较,输出比较引脚是输出端口,输入捕获引脚是输入端口。测频法在闸门时间内最好多出现上升沿,计次数量多一些,有助于减小误差,假如定了1S的闸门时间,结果信号频率非常低,只有几个上升沿,甚至没有,就不能认为频率是0.在计次N很小时,误差非常大,所以测频法要求信号频率要稍微高一些。

2023-03-31 09:55:29 639

原创 STM32——定时器中断

定时频率=72MHz/(PSC+1)/(ARR+1),定时1s,也就是定时频率为1Hz,PSC就给7200,ARR给70000然后两个参数-1,因为预分频器和计数器有偏差所以要-1,PSC和ARR的值为0-65535之间,他们给的值不是唯一的可以预分频器给少点,自动重装器给多点。因为在初始化结构体里有很多关键的参数,比如自动重装值和预分频值,这些参数可能在初始化之后还需要更改,为了更改方便,可以使用以下函数更改关键参数。1 RCC开启时钟,打开时钟后定时器的基准时钟和整个外设的工作时钟就会同时打开。

2023-03-14 14:33:02 1286

原创 STM32——GPIO简介

1

2023-01-19 19:57:32 1595

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除