- 博客(14)
- 收藏
- 关注
原创 x++、++x的一些问题
这里i=0,进入for循环,会先判断(i++)是否小于5,i=0时,也即(i++)为=0,当执行完(i++)<5这条语句的判断后,才会将i++等于1。这里第一次判断i=0,++i就为1,也即1<5,x=1;第二次i=1,2<5;实际上带入进x=s(++x)就等价于,x=((++x)*(++x)),这样你是否有头绪能够猜出最终打印的值呢。还是先分析一下代码,跟前面不同,他的等价代码的先运算后加,x=((x++)*(x++))。(++x)*(++x)等价于(x+2)*(x+2),也即12*12=144。
2024-10-08 00:45:23
570
1
原创 IIC通信协议
IIC,它主要用于连接微控制器(MCU)及其外围设备或各种电子设备中的其他组件,相比其他通信协议,IIC协议通过两根线SCL(Serial Clock)、SDA(Serial Data),即可实现设备间的通信,极大地简化了硬件连接,节省了布线和空间资源。IIC总线支持多主机和多从机的架构,允许多个设备同时连接到同一总线上,并通过地址识别进行通信,使得IIC协议具有很强的灵活性和可扩展性。
2024-08-25 22:36:47
9138
原创 USART串口通信
串口通信就是将一个设备的数据传送到另一个设备,为了扩展硬件系统。在STM32中,里面集成了很多功能,例如AD采样、TIM定时器计数、PWM输出等功能。这些都是属于STM32芯片内部的功能,就相当于使用了对应的外设(例如PWM输出就是使用了TIM的输出比较功能),配置外设的寄存器都在芯片内。如果需要无法由STM32芯片实现的功能,例如蓝牙无线遥控功能、或者是陀螺仪测量加速度功能等,就需要对应的外挂上芯片,对应的外挂芯片回传数据的时候就需要通信来进行。
2024-08-22 17:55:43
1570
原创 关于DMA的一些总结
当有大量数据需要转运的时候,如果由CPU来进行数据转运的操作,数据转运属于简单操作,而CPU主要是运行一些较为复杂的程序,这样会占用大量CPU资源。为此就存在一个专门转运数据的外设,也就是DMA,译为(Direct Memory Access)直接存储器存取,DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。
2024-08-16 18:48:56
2802
原创 STM32外设地址结构体
我们对片片上外设的控制,实际上就是对片上外设的寄存器进行操作,进行设置或是清除的操作 ,为了能够更好的操作外设的寄存器,ST公司为每个寄存器都分配了地址,对具体是怎么分配的来进行介绍。
2024-08-16 10:32:18
734
原创 关于ADC的一些总结
由于在STM32单片机中,主要是数字电路,而数字电路没有多少伏电压的概念,只有高电平和低电平两个概念,如果想要读取电压值,则需要经过ADC模数转换来读取对应引脚的模拟电压,然后存放到对应的寄存器种,通过变量来读取从而进行显示、判断等操作。
2024-08-14 19:29:24
2342
原创 寄存器描述中的,r、w、rw、rc_w1等描述的解释
可以看到都为rw,也就是标了rw的这些位可读可写。上图低16位都为r,说明这些位只能读。软件可以读此位,也可以通过写0来清除,写1无效。
2024-08-13 20:10:00
1699
原创 TIM定时器的一些总结
TIM定时器是一个比较常用的外设,涉及到需要在指定的时间做某个动作需要用到,同时TIM定时器也能用来输出PWM波形来驱动电机。由于定时器的基本结构是非常通用的,很多模块都可以使用到,所以在STM32上扩展了许多功能,不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能 根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型。
2024-08-12 20:53:56
3962
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人