- 博客(35)
- 收藏
- 关注
原创 Git使用速通
git merge --no-ff -m “merge with no-ff” dev 不使用fast forward合并,因为fast forward合并,删除分支后,会丢掉分支信息。 随后编辑器会启动,用于录入合并提交的信息,默认信息中已经包含了是从 feature-A 分支合并过来的相关内容,所 以可不必做任何更改。–hard会回退到上个版本的已提交状态,而–soft会回退到上个版本的未提交状态,–mixed会回退到上个版本已添加但未提交的状态。哪个对比没差别,就不显示。
2024-08-18 11:31:51
1279
1
原创 单片机中的存储器讲解
区域作用内存栈区存放局部变量名内存堆区存放new或者malloc出来的对象文字常量区存放局部变量或者全局变量的值(全局区)静态区用于存放全局变量或者静态变量代码区二进制代码。
2024-08-17 21:33:42
1990
原创 iic通信总线读取EEPROM
在SCL低电平期间,SDA可以随便改变但是在SCL高电平期间,只要SDA发生了变化,那么就一定会产生起始或者终止信号,在发过起始信号后,SCL只在读取SDA的时候为高,其他时间都为低,应答就是发送/接收一个字节的一位,即去掉for循环的部分。
2024-08-17 21:26:30
1332
原创 【STM32HAL库】DAC输出0-3.3v
DAC也有分辨率,转换时间,精度等分辨率常见为8或12位的转换时间F1,F4,F7都是3us左右,而H7系列是1.7us。
2024-05-13 21:49:37
1541
2
原创 【stm32HAL库】ADC多通道DMA采集
2.由于我们是DMA直接得到的ADC的原始数据,若是我们不进行处理就继续下一次传输,那么数据就会被覆盖,所以我们还打开DMA传输中断,在里面用标志位,用来判断是否传输完成,然后在main里面进行数据的处理。1.根据数据手册直到PC1,PA2,PA3分别为ADC123的通道11,2,3,我们就用这三个通道来采集,每一个通道采集 50 次,即一共需要DMA传输150个数据。4.编写MSP函数,配置GPIO,ADC和DMA的时钟,记得配置ADC的采样时钟。3.开启DMA的中断,开启ADC的DMA请求。
2024-05-13 17:00:27
5082
原创 【STM32HAL库】串口通信-UART
一、数据通信基础一、数据通信基础1.串行并行并行通信可以进行8,16,32位的通信串行通信传输速率低,抗干扰能力强,通信距离长,成本低,IO资源少并行通信传输速率高,抗干扰能力弱,通信距离断,成本高,IO资源多。
2024-04-20 15:32:40
1241
原创 【STM32HAL库】外部中断
中断的意义:高效处理紧急程序,不会一直占用CPU资源NVIC:嵌套向量中断控制器,属于内核,支持256个中断(16内核,240外部),支持256个优先级,允许裁剪为16个(ST的)中断向量表:定义一块固定的内存,以四字节对齐,存放在各个中断服务函数程序的首地址,定义在启动文件中EXTI:外部(扩展)中断事件控制器,F1包含20个产生事件中断请求的边沿检测器,即F1有20条EXTI线中断:进NVIC,有服务函数,需要CPU处理事件:不进。
2024-04-19 12:40:22
4455
原创 【STM32HAL库】printf函数
简单说就是避免通过仿真器实现开发板在电脑上的输入输出。不论是微库法还是代码发,都需要重定向fputc函数。直接使用移植好的微库,即勾选。注意:避免使用半主机模式。
2024-04-17 20:26:51
610
原创 蓝桥杯单片机速成8-NE555频率测量
NOTE:使用NE555测量频率之前,需要将J3-15(SIGNAL)与J3-16(P34短接)在使用矩阵键盘的时候也记得把跳冒拔下,因为有公共引脚P34又是因为他的输出引脚是P34,所以只能用定时器0来作为计数器进行频率测量了。
2024-04-04 15:09:06
1047
原创 蓝桥杯单片机速成7-超声波测距
在蓝桥杯“单片机设计与开发”比赛中,超声波测距是一直以来都是国赛中重要的考点,几乎每届必考。虽然省赛还没有考过,但也不能排除以后不考,它和其他的外设模块不同,没有底层驱动代码提供,得自己来写实现代码在蓝桥杯单片机的竞赛综合平台CT107D中,超声波模块的TX引脚接到单片机的P1.0端口,RX引脚接到单片机的P1.1端口。设计程序,进行超声波测距,最大测量范围约140cm基本原理:想必大家在高中物理做过超声波测距的题。
2024-04-02 20:52:53
942
原创 蓝桥杯速成5-AD/DA模数转换
上图可知该芯片使用的是iic时序,而不是51单片机的xpt2046时序,iic我们都很熟悉了吧并且大赛还提供了我们iic底层驱动代码左上角有AIN0-4四个转换输入通道,和AOUT一个输出通道,由控制字节选择地址字节:0x90 | (读写位)所以若是使用AD输入就是0x01-光敏转换 0x03-电位器转换DA输出就是0x41 0x43 等等。
2024-04-02 12:39:04
1096
原创 蓝桥杯单片机速成3-定时器扫描按键
假如是s4按下了,则temp取反后是->0000 1000 当i=0时,二者相等,然后返回值为0+4=4。学过51的都知道,矩阵按键的实现需要进行行或列扫描 ,我们这里以扫描行为例进行矩阵键盘的实现。上面的代码通过巧妙的方式来取代了传统的按键键值判断的方式,很简单,可以直接使用。第四列经过行扫描后的temp=1111 1111 1111 1110。第三列经过行扫描后的temp=1111 1111 1111。例如s19按下,则第一列经过行扫描后的temp=1111。开始之前,要先把跳冒接上即接上1和2。
2024-04-01 21:26:51
568
原创 蓝桥杯单片机速成1--138锁存器
大家都知道,蓝桥杯单片机比赛用的板子的原理就是51的原理,但二者唯一的区别就是这个74HC138锁存器,因为比赛用板的LED,数码管,蜂鸣器和继电器都在P0口上,所以为了防止错乱,加了一个锁存器,每次写入p0口后都要关闭锁存器。
2024-04-01 20:38:38
565
原创 stm32平衡车
1.陀螺仪MPU6050--读取三轴的加速度和角速度,然而我们平衡车需要的不是加速度和角速度,而是需要实时的角度,即我们还需要进行姿态角转换,可以直接移植正点原子的DMP函数2.,l298N也可,我用的是TB6612,点击查看接线3.OLED,用来显示姿态角,可以直接移植4.12v锂电池和DCDC降压模块给电机和单片机供电5.,点击查看接线6.c8t6单片机。
2024-03-23 19:14:46
5511
7
原创 stm32-定时器输入捕获
即触发从模式的方式,比如我们可以用通道1的滤波后的定时器输入作为触发器,来触发从模式的复位,即通道一每接收到一次边沿跳变(具体的高低是我们自己设置的),就会触发从模式CNT清零。这个主模式的输出可以是PWM,即我的看法是主模式是用来作为其他定时器的输入的,比如我们用定时器1的PWMOC输出作为TIM2的输入捕获波型。选CH1的RESET,->选中的触发输入(TRGI)的上升沿重新初始化计数器,并且产生一个更新寄存器的信号。接收的时候分两个通道接收,通道一接收频率,通道二接收占空比。
2024-03-12 20:46:06
2286
1
原创 常用电机简介
STBY->待机控制引脚,这里不需要待机,接面包3.3v。AIN1/2-> 任意接两个引脚。PWMA->PWM输出控制引脚。VM->STLINK的5v。VCC->面包板3.3v。AO1 AO2 接电机。-TB6612驱动板。GND->面包板负极。
2024-03-11 20:12:31
504
1
原创 《C和指针》第五章习题
浮点数类型,2.0因为两个数都是整数,因此除法得到一个被截断的整数,然后再转化为浮点数,所以为2.0想得到2.5-->(float)25/10显而易见,结果本应当是-10但是由于函数的调用顺序是不确定的,所以可能有一下结果2 - 3*42 - 4*33 - 2*43 - 4*24 - 3*24 - 2*3即三个func()的调用顺序不确定用于操纵特殊的一位的时候如果要挑剔的话,应该是if更慢一些,因为多了赋值i的语句。
2024-03-04 15:55:40
801
1
原创 STM32--DMA详解
直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7个通道, DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。1. DMA2仅存在于大容量产品和互联型产品。
2024-02-23 15:52:19
3700
原创 《C和指针》第四章习题
合法,对表达式进行求值,但是结果没有存在任何地方数据类型 变量名 = 值或表达式合法,如果你想为一些语句引入变量,但是又想变量只能这些语句使用,就可以这样定义0-9容易死循环,且putchar不在while循环里需要循环体至少执行一次的时候用do合适。
2024-02-23 12:54:01
433
原创 stm32通用复用IO详解
GPIO通用输入输出,简称IO,每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL, GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。AFIO寄存器是用来复用IO的。
2024-02-22 12:59:37
2457
1
原创 《c和指针第三章习题》
首先,extern调用的是具有外部链接属性的变量,而函数a内部的变量是none的属性,所以错了 ,若是x被static修饰了,也不能调用,因为static当它用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,但变量的链接属性和作用域不受影响。因为函数内部声明的变量作用域就是函数内部,一旦出了函数,变量就会清零,所以若是第一次函数改变了变量的值,那么第一次结束调用的值就不和第二次开始的变量一样了,若第一次并未改变变量的值,那就第一次结束的和第二次开始的一样。
2024-02-22 10:10:35
935
1
原创 stm32外部中断详解
相比较于51单片机来说,stm32拥有大量的外部中断资源,利用好外部中断能够带来很多便利STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112),STM32F103RCT6(51),下图会给出答案112通用I/O端口以下图的方式连接到16个外部中断/事件线上EXTI线16连接到PVD输出EXTI线17连接到RTC闹钟事件EXTI线18连接到USB唤醒事件EXTI线19连接到以太网唤醒事件(只适用于互联型产品)
2024-02-21 11:18:56
3954
1
原创 编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确地成对出现。注意:你不必担心注释内部、字符串常量内部和字符常量形式的花括号。
【代码】编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确地成对出现。注意:你不必担心注释内部、字符串常量内部和字符常量形式的花括号。
2024-02-20 20:55:45
131
1
原创 .编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。
【代码】.编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。
2024-02-20 19:28:04
164
原创 《C和指针》编写一个程序,从标准输入读取些字符,并把它们写到标准输出上。它同时应该计算checksum值,并写在字符的后面。
【代码】《C和指针》编写一个程序,从标准输入读取些字符,并把它们写到标准输出上。它同时应该计算checksum值,并写在字符的后面。
2024-02-20 17:48:39
149
原创 【C语言】编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
【代码】【C语言】编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
2024-02-20 15:44:15
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人