- 博客(31)
- 收藏
- 关注
原创 Mini打印机复刻过程(外设绘制)
实际电路的设计在输入和输出滤波方面做了优化,增加了滤波电容以提高充电稳定性和电源干扰抑制能力。此外,连接器的变化是为了适应特定的电池接口要求。这些改动在特定应用场景下能够提高电路的性能和可靠性,因此与典型应用电路有所不同。
2024-09-12 21:47:33 722
原创 江协科技stm32————11-5 硬件SPI读写W25Q64
一、开启时钟,开启SPI和GPIO的时钟二、初始化GPIO口,其中SCK和MOSI是由硬件外设控制的输出信号,配置为复用推挽输出MISO是硬件外设的输入信号,配置为上拉输入,SS是软件控制的输出信号,配置为通用推挽输出三、配置SPI外设,使用结构体调用SPI_Init四、开关控制,调用SPI_Cmd,使能//写DR数据寄存器//读DR。
2024-09-04 02:18:32 757
原创 江协科技stm32————11-4 SPI通信协议
SPI1挂载在APB2是,PCLK是72MSPI2挂载在APB1是,PCLK是36M只了解SPI做主机的情况,一般采样全双工可以使用DMA自动搬运数据I2S(音频传输)全双工通信:SPI可以同时发送和接收数据。主从模式:设备可以配置为主模式(提供时钟信号)或从模式(接收时钟信号)。时钟极性和相位:通过配置时钟极性(CPOL)和相位(CPHA),用户可以选择何时进行数据采样和发送。数据帧格式:数据帧可以配置为8位或16位,并且可以选择MSB(最高有效位)优先或LSB(最低有效位)优先发送数据。
2024-09-04 01:28:59 1560
原创 江协科技stm32————11-3 软件读写W25Q64
包含通信引脚封装、初始化以及SPI通信的3个拼图(起始、终止和交换一个字节)在写W24Q64.c时,参考W24Q64手册的。使能、擦除、页编程、读数据。
2024-09-03 11:37:37 862
原创 江协科技stm32————11-1SPI通信协议
重复该过程,直到主机和从机的字节完成数据交换,可以实现发送一个字节(只看从机)、接收一个字节(只看主机)以及发送同时接收一个字节。高位先行,主机移位寄存器向左移动一位通过MOSI移动到从机寄存器的右边;SCK第一个边沿,MOSI和MISO移出最高位,SCK第二个边沿,之前移出的最高位进入对方的最低位。首先发送0x02指定地址写的指令,后面的24位跟着指定的地址,然后写入数据。从机中有一个指令集(起始后第一个字节发送指令码,指导从机完成相应的功能)该图中,从机获得MOSI的0x06,写使能的指令。
2024-08-31 22:32:16 606
原创 江协科技stm32————10-5 硬件I2C读写MPU6050
I2C_AcknowledgeConfig //配置ACK应答使能。I2C_Send7bitAddress //发送7位地址。I2C_GenerateSTART //生产起始条件。I2C_GenerateSTOP //生产终止条件。I2C_SendData //把数据写入DR寄存器。I2C_ReceiveData //读取DR数据。I2C_CheckEvent //检查标志位。
2024-08-30 23:28:50 577
原创 江协科技stm32————10-3 软件I2C读写MPU6050
一、建立I2C通信层的.c和.h模块,写好I2C底层的GPIO初始化和六个时序单元起始、终止、发送一个字节、接收一个字、发送应答和接收应答二、建立MUP6050的.c和.h模块,基于I2C通信模块来实现指定地址读、指定地址写再实现写寄存器对芯片进行配置,读寄存器得到传感器数据三、在main.c里,调用MPU6050模块,初始化,拿到数据,显示数据一、 MyI2C_W_SDA(1);这里主机将SDA置1,并不是强制SDA为高电平(开漏输出+弱上拉),而是释放SDA。
2024-08-29 06:33:11 657
原创 江协科技stm32————10-2 MPU6050简介
对于快速和慢速运动的精确跟踪,这些部件具有用户可编程陀螺仪,满量程为±250,±500,±1000和±2000°/秒(dps)和用户可编程的加速度计满量程为±2g,±4g,±8g和±16g。在I2C时序中第一个字节的高7位是从机地址,最低为是读写位,所以在发送第一个字节时,要把(0x68
2024-08-28 01:40:18 57
原创 江协科技stm32————10-1 I2C通信协议
另外,起始和终止都是由主机产生的。主机需要给从机写入数据时,SCL高电位,拉低SDA时,产生其实条件 (s),后面是8个字节包括从机地址(高位先行)+读写位(0写入,1读取),SCL低电平期间改变SDA的值,SCL高电平期间读取SDA的值,后面紧跟应答位(0表示应达成功),……SCL低电平,主机要是想发送低电平,就拉低SDA,如果想发送1就松手,回到高电平,随后主机松手SCL回到高电平,此时读取SDA的数值(SCL高电平期间,SDA不允许改变),然后主机拉低SCL,继续传输下一个值,循环8次发送一个字节。
2024-08-27 02:30:53 1407
原创 江协科技stm32————9-5串口收发HEX数据包&串口收发文本数据包
【代码】江协科技stm32————9-5串口收发HEX数据包&串口收发文本数据包。
2024-08-25 21:43:57 215
原创 江协科技stm32————9-4USART串口数据包
然后根据S=1的状态,进行接收数据的程序。不过这样的话,载荷和包头重复的问题会更严重一些,比如最严重的情况下,我载荷全是FF,包头也是FF,那你肯定不知道哪个是包头了,而加上了FE作为包尾,无论数据怎么变化,都是可以分辨出包头包尾的。可以规定一批数据有4个字节,在4个字节之前添加包头0xFF,在之后添加包尾0XFE,当我们接收到0xFF时,就知道一个数据包来了,接着接收到的4个字节就作为数据包的第1、2、3、4个数据存储在数组中,最后接收到包尾0xFE时,就可以置一个标志位表示收到了一个数据包。
2024-08-24 21:13:08 1055
原创 江协科技stm32————9-2USART串口外设
USART大体可分为发送和接收两部分发送:根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去接收: 接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里常用串口参数波特率:9600/115200数据位8位 停止位1位 无校验同步模式就是多了个clk时钟硬件流控制:通过低电平表示接收方准备完成,防止在传输时因为传输速度过快导致数据被抛弃或覆盖。
2024-08-23 03:48:05 613
原创 江协科技stm32————9-1USART串口协议
全双工:双方能同时进行双向通信(一个发送一个接收)发射信号和接收信号互不影响半双工:一根数据线传输单工:数据只能单方传输时钟信号决定是同步还是异步异步通信需要约定采样频率,添加帧头帧尾,进行采样位置对齐差分信号可以极大的提高抗干扰能力(传输速度和距离比较高)
2024-08-19 21:05:43 299
原创 江协科技stm32————8-2DMA数据转运&DMA+AD多通道
寄存器地址 = 所在外设的起始地址 + 偏移(ADC寄存器地址映像)例:OLED_ShowHexNum(2,1,(uint32_t)&ADC1->DR,8);注:强制类型转换ADC1_BASE(起始地址)为指针类型 4001 2400结合偏移量4C,可以最终算出地址。
2024-08-15 03:34:08 579
原创 江协科技stm32————8-1DMA直接寄存器读取
软件触发:存储器到存储器的数据转运 例如flash转到SRAM中硬件触发:外设到存储器的数据转运,ADC完成AD转换后,触发一次,转运一次。
2024-08-15 00:23:58 435
原创 江协科技stm32————7-2AD单通道&AD多通道
/ADC获取软件开始转换状态(一般不用用下面这个判断EOC的状态)void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);//给ADC开启电源。
2024-08-14 00:44:25 766
原创 江协科技stm32————7-1ADC模数转换器
STM32中ADC的结构框图如上图所示。总共有18个输入通道包括16个gpio口和2个内部通道(内部温度传感器和内部参考电压)。模拟多路开关可以指定我们想要的通道,右边是多路开关的输出,进入到模数转换器(这里模数转换器就是执行刚讲的逐次比较的过程),转换结果会直接放在数据寄存器里,读取寄存器就能知道adc转换的结构了。对于普通的adc,多路开关一般都是只选中一个(就是选中一个通道、开始转换、等待转换完成、读取结果,这是普通的流程)。
2024-08-13 22:17:09 710
原创 江协科技stm32————5-2对射式红外传感器&旋转编码器计次
不知该写什么模式,可以看参考手册中的外设GPIO外设配置表。AFIO的库函数是和GPIO在一个文件里,可以查看Library文件中的gpio.h查看函数。第四步,配置EXTI,这样PB14的电平信号就能够通过EXTI通向下一级的NVIC了。EXTI和NVIC两个外设的时钟是一直开的 ,NVIC内核外设都是不需要开启时钟。GPIO_EXTILineConfig 配置AFIO的数据选择器,选择想要的引脚。第五步,配置NVIC,NVIC是内核外设,所以它的库函数在misc.h。
2024-08-13 19:32:07 133
原创 江协科技stm32————5-1 EXTI 外部中断
stm32中断包含EXTI(外部中断)、TIM、ADC(模数转换器)、USART(串口)、SPI、I2C、RTC(实时时钟)等多个外设。使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级。
2024-08-13 00:04:02 635
原创 江科大stm32————6-6 输入捕获模式测频率
当我们需要读取最新一个周期的频率时,直接读取CCR寄存器,然后按照fc/N,计算一下就行了,这就是整个程序的思路。第四步,配置输入捕获单元,包括滤波器、极性、直连通道、交叉通道、分频器这些参数,用一个结构体就可以统一进行配置了。第五步,选择从模式的触发源,触发源选择为TI1FP1,这里调用一个库函数给一个参数就行了。第三步,配置时基单元,让CNT计数器在内部时钟的驱动下自增运行,和之前代码一样。第六步,选择触发之后执行的操作,执行Reset操作,这里调用一个库函数就行了。
2024-08-12 16:31:20 194
原创 江协科技stm32————6-7 TIM编码器接口
第三步,配置时基单元,预分频器一般选择不分频,ARR一般给最大值655535,只需要CNT执行计数就行了。定时器编码器接口配置,1、选择定时器 2、选择编码器模式 3、4、分别选择通道一通道二的电平极性。第二步,配置GPIO,需将PA6和PA7配置成输入模式。第一步,RCC开启时钟,开启GPIO和定时器的时钟。第五步,配置编码器接口模式,直接调用一个库函数。有用,后面的参数没有用到,与编码器无关。最后,调用TIM_Cmd,启动定时器。第四步,配置输入捕获单元,这里只有。滤波器和极性两个参数。
2024-08-12 16:30:30 328
原创 江协科技stm32——6-5 PWM驱动直流电机
分析:因为马达正负极接线是我自己焊接的,所以可能是虚焊,用万用表测试后发现功能正常,后发现因为PWMA接的是PA2口。后续我将PWMA接到PA1口,PWM_SetCompare全都换成2,发现功能无法实现。正常工作时测得电压 PWMA:0.6V AIN2:0V AIN1:3.27V。}里面的compare3写成了compare2,所以不能实现功能。根据下面的引脚图可以看出,接PA2时,对应的是TIM2_CH3。三、PWM驱动直流电机代码部分。一、PWM基本结构及参数计算。
2024-08-08 22:28:02 313
原创 7-5 电梯调度
大楼有地下-1层~地面33层,此大楼有A、B、C三部电梯。调度原则:(1)电梯按照用户按键的时间顺序前往服务;(2)距离按键用户所在楼层最近的电梯前往(若楼层距离一样,则按A、B、C的优先调度顺序前往用户楼层);(3)电梯一旦启动前往某楼层,不再为其它楼层用户服务。
2023-12-10 15:17:13 695 1
原创 6-8 使用函数输出指定范围内的Fibonacci数
其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[mn]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。
2023-12-10 15:14:50 253 1
原创 6-9 空心的数字金字塔 PTA
其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行空心的数字金字塔,请注意,最后一行的第一个数字前没有空格。
2023-12-10 13:41:33 70 1
原创 7-5 高速公路超速处罚
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
2023-11-28 20:41:20 185
原创 目标与规划
3、 如果可能的话,我想参与一些比赛项目。这样可以和其他开发者一起工作,学到实际开发中的经验,并在实践中提高编码水平。2、在学习过程中要注重实践,尝试解决一些编程问题,参与小项目,这有助于巩固所学的知识,并提高解决问题的能力。1、一周五天,每天三到四小时学习c语言相关内容,通过b站的网课、csdn等相关相关平台学习。4、最后在将来我想从事相关专业的开发岗位,把所学的知识用于工作当中。
2023-11-26 13:08:15 55 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人