- 博客(34)
- 收藏
- 关注
转载 江科大/江协科技 STM32学习笔记P27
第一步开启时钟,把需要用的USART和GPIO的时钟打开,第二步GPIO初始化,把TX配置成复用输出,RX配置成输入,第三步配置USART,直接使用一个结构体配置所有参数,第四步,如果只需要发送的功能,直接开启USART,初始化结束,如果需要接收需要配置中断,在开启USART之前加上ITConfig和NVIC的代码。ASCLL码字符集是最简单最常用的字符集,常用的汉字字符集有GB2312、GBK、GB18030等等,全球所以国家统一字符集是Unicode字符集,最常用传输形式是UTF8。
2024-09-01 17:35:58
505
原创 江科大/江协科技 STM32学习笔记P26
UART就是异步收发器,一般串口很少使用同步功能,USART和UART用起来没什么区别,USART的同步模式只是多了时钟输出,只支持时钟输出,不支持时钟输入,同步模式更多为了兼容别的协议或者特殊用途而设计的,不支持两个USART之间进行同步通信,所以学习串口主要还是异步通信。USART大体可分为发送和接收两部分,发送部分就是将数据寄存器的一个字节数据自动转换为协议规定的波形,从TX引脚发送出去,接收部分就是自动接收RX引脚的波形,按照协议规定,解码为一个字节数据,存放在数据寄存器里。
2024-08-27 12:23:49
699
原创 江科大/江协科技 STM32学习笔记P25
第一个波形是发送一个字节数据0x55时,在TX引脚输出的波形,波特率是9600,所以每一位的时间就是1/9600,大概是104us,每一位就是100us多一点,就是104us,数据帧开始,先发送起始位,产生下降沿,代表数据帧开始,数据0x55转为二进制,低位先行,就是依次发送1010 1010,然后这个参数是8位数据,1位停止,无校验,没有校验位,所以之后就是停止位,把引脚置回高电平,这样一个数据帧就完成了,在STM 32中根据字节数据翻转高低电平,是由USART外设自动完成的,不用我们操心。
2024-08-17 14:08:41
399
原创 江科大/江协科技 STM32学习笔记P24
当程序中出现了一大批数据,并且不需要更改时,就可以定义成常量,节省SRAM的空间,比如查找表、字库数据等等。
2024-08-16 12:11:17
760
原创 江科大/江协科技 STM32学习笔记P23
DMA进行存储器到存储器的数据转运,比如Flash里的一批数据转运到SRAM里,需要软件触发,使用软件触发后DMA就会一股脑地把这批数据以最快的速度全部转运完成,如果DMA进行的是外设到存储器的数据转运,就不能一股脑地转运,因为外设的数据是有一定时机的,这时需要用硬件触发,比如转运ADC的数据,ADC每个通道AD转换完成后,硬件触发一次DMA,之后DMA再转运,触发一次,转运一次。存储器到存储器的数据转运一般用软件触发,外设到存储器的数据转运一般用硬件触发。
2024-08-14 18:27:00
1108
原创 江科大/江协科技 STM32学习笔记P22
在ADC工作的时候,如果想要软件触发转换,会有函数可以触发,如果想读取转换结果,会有函数可以读取结果。没有学DMA,这里还是用了单次转换、非扫描模式来实现多通道,在每次触发转换之前手动更改一下列表第一个位置的通道。
2024-08-09 15:22:53
601
原创 江科大/江协科技 STM32学习笔记P21
有ADC也有DAC数字模拟转换器,使用DAC可以将数字变量转化为模拟电压,与PWM相比较,PWM也有DAC的功能,同时PWM只有完全导通和完全断开两种状态,没有功率损耗,在直流电机调速这种大功率的应用场景使用PWM来等效模拟量比DAC更好。DAC的应用主要在波形生成,比如信号发生器、音频解码芯片等。AD转换需要花一小段时间,1us表示从AD转换开始到产生结果需要1us,对应AD转换的频率就是1MHz,是STM32ADC的最快转换频率。
2024-08-08 09:10:26
1277
原创 江科大/江协科技 STM32学习笔记P20
编码器接口的初始化,第一步,RCC开启时钟,开启GPIO和定时器的时钟,第二步,配置GPIO,这里把PA6和PA7配置成输入模式,第三步,配置时基单元,这里预分频器选择不分频,自动重装寄存器给最大65535,第四步,配置输入捕获单元,只有滤波器和极性选择有用,第五步,配置编码器接口模式,最后,调用TIM_Cmd,启动定时器。
2024-08-07 08:34:37
1334
原创 江科大/江协科技 STM32学习笔记P19
编码器测速实际上就是测频法测正交脉冲的频率,CNT计次,每隔一段时间取一次计次,这就是测频法的思路,只不过编码器接口计次更高级,它能根据旋转方向,不仅能自增计次还能自减计次。如果定时器资源不够,可以软件实现,比如PWM可以直接定时中断,在中断里手动计数;输入捕获可以外部中断,在中断里手动取CNT;编码器接口可以外部中断里手动自增自减。编码器的两个输入引脚就是每个定时器的CH1和CH2引脚,CH3和CH4不能接编码器。
2024-08-06 16:28:39
452
原创 江科大/江协科技 STM32学习笔记P18
第一步,RCC开启时钟,把GPIO和TIM的时钟打开,第二步,GPIO初始化,把GPIO配置成输入模式,一般选择上拉输入或浮空输入模式,第三步,配置时基单元,让CNT计数器在内部时钟的驱动下自增运行,第四步,配置输入捕获单元,包括滤波性、极性、直连通道或交叉通道、分频器这些参数,用一个结构体统一配置,第五步,选择从模式的触发源,触发源选择为TI1FP1,第六步,选择触发后执行的操作,执行Reset操作,最后,调用TIM_Cmd函数,开启定时器。PWM频率=更新频率=72M/(PSC+1)(ARR+1)
2024-08-03 16:50:04
411
原创 江科大/江协科技 STM32学习笔记P17
下面是输入捕获通道1的GPIO口,输入一个左上角的方波信号,经过滤波器和边沿检测,选择TI1FP1为上升沿触发,之后输入选择直连的通道,分频器选择不分频,当TI1FP1出现上升沿之后,CNT的当前计数值转运到CCR1,同时触发源选择,选中TI1FP1为触发信号,从模式选择复位操作,这样TI1FP1的上升沿也会通过上面一路触发CNT清零,CNT的值转到CCR,0转移到CNT。采样频率越低,采样个数N越大,滤波效果越好。适合测量低频信号,测量结果更新的快,周期的倒数就是频率,用标准频率测一个周期,再取倒数。
2024-08-03 10:47:09
1180
原创 江科大/江协科技 STM32学习笔记P16
打通PWM通路,第一步,RCC开启时钟,把要用的TIM外设和GPIO外设的时钟打开,第二步,配置时基单元,包括这之前的时钟源选择,第三步,配置输出比较单元,包括CCR的值、输出比较模式、极性选择、输出使能,在库函数里用结构体统一配置,第四步,配置GPIO,把PWM对应的GPIO口,初始化为复用推挽输出的配置,第五步,运行控制,启动计数器。0度对应500,180度对应2500,中间2000,按比例缩放再加500的偏移量,就是角度对应的映射。计算得出CCR、ARR、PSC的值。
2024-08-01 09:37:04
522
原创 江科大/江协科技 STM32学习笔记P15
CNT计数器,CCR捕获/比较寄存器,在下图右下部分的输出比较电路,捕获/比较寄存器就是输入捕获和输出比较共用,当使用输入捕获时,它就是捕获寄存器,当使用输出比较时是比较寄存器。在输出比较时比较CNT和CCR的值,CNT计数器自增,当大于CCR、小于CCR或者等于CCR时,输出对应置1、置0。使用PWM波形就可以在数字系统来等效实现模拟信号的输出,比如数字输出端口控制LED,或者电机调速,我们以一个很快的频率给电机通电、断电、通电、断电,那么电机的速度就能维持在一个中等速度。
2024-07-29 16:16:26
702
原创 江科大/江协科技 STM32学习笔记P14
外部时钟模式1使用外部输入脚(TIx)作为计数器时钟的时钟源,而外部时钟模式2使用外部触发输入(ETR)或内部触发输入(ITRx)作为计数器时钟的时钟源1。
2024-07-27 11:03:01
464
原创 江科大/江协科技 STM32学习笔记P13
定时器的基准时钟一般都是主频72MHz,如果对72MHz计72个数,就是1us的时间,如果计72000个数就是1ms的时间。
2024-07-25 16:41:17
2782
原创 江科大/江协科技 STM32学习笔记P12
使用外部中断要把外部中断从GPIO到NVIC这一路中出现的外设模块都配置好。打通这条信号电路第一步配置RCC,把涉及到的外设的时钟都打开,第二步,配置GPIO,选择端口为输入模式,第三步,配置AFIO,选择用的这一路GPIO,连接到后面的EXTI,第四步,配置EXTI,选择边沿触发方式,比如上升沿、下降沿或者双边沿,选择触发响应方式,可选中断响应和事件响应,一般是中断响应,第五步配置NVIC,给中断选择一个合适的优先级,最后通过NVIC,外部中断信号就能进入CPU。
2024-07-24 16:50:14
467
原创 江科大/江协科技 STM32学习笔记P9-11
转动旋转编码器产生脉冲波形,信号突发,STM32不知道什么时候产生,同时是外部驱动,STM32只能被动读取,最后这个信号非常快,STM32稍晚一点读取就会错过很多波形。对于这种情况,考虑外部中断。按键虽然也是外部驱动的突发事件,但外部中断不好处理按键抖动和松手检测的问题,对于按键来说,它的输出波形也不是转瞬即逝的,要求不高可以在主程序中循环读取,或定时器中断读取。
2024-07-24 08:59:31
1333
原创 江科大/江协科技 STM32学习笔记P8
用LED.c和LED.h两个文件封装LED的驱动程序,LED.c存放驱动程序的主体代码,LED.h春芳这个驱动程序可以对外提供的函数或变量的声明。读取整个输入寄存器,返回值是16位数据,每一位代表一个端口值。读取输出寄存器的某一位,一般用于输出模式。读取输入寄存器某一个端口的输入值。用来读取整个输出寄存器。
2024-07-21 17:50:45
463
原创 江科大/江协科技 STM32学习笔记P6
AHB(Advanced High-performance Bus), 高速总线,用来接高速外设的。APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的。APB2一般是和AHB同频率,都是72MHz,APB1一般是36MHz。APB2连接的一般是外设中稍微重要的部分,比如GPIO端口,还有一些外设的一号,比如USART1、SPI1、TIM1、TIM8,还接ADC、EXTI、AFIO。其他的2、3、4…外设和DAC、PWR、BKP等次要点的外设都放到APB1。
2024-07-19 21:40:23
522
原创 江科大/江协科技 STM32学习笔记P4-5
GPIO(General Purpose Input Output)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等,输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。
2024-07-18 11:31:33
1066
原创 江科大/江协科技 STM32学习笔记P1-3
什么是 ARM?简单说就一种性能出众的 32位处理器的内核架构。什么是STM32?简单来说就是一款可以控制电子器件的ARM芯片。在江科大的视频中我们学习的是,ST指意法半导体公司名;M指微控制器;32指32位;F是类型,常用类型:F-通用型,S-简单型,L-低功耗,H-高性能;103指子系列分类;C指引脚数,常用引脚数:C是48脚,R是64脚,V是100脚,Z是144脚;8指存储量,8代表64KB,B代表128KB;T是指 LQFP 封装;6是工业级 -40~85℃的工作温度范围。简单了解即可,不用背。
2024-07-15 16:54:42
1636
原创 光敏传感器控制蜂鸣器和EXTI外部中断等
/锁定GPIO配置,调用函数,参数指定某个引脚,这个引脚的配置就会被锁定,防止意外更改。//进行引脚重映射,第一个参数选择要重映射的方式,第二个参数是新的状态。//配置AFIO的数据选择器,来选择我们想要的中断引脚。注意EXTI5-9、EXTI10-15,分别触发同一个中断函数,需要再根据标志位来区分中断,是为了减少NVIC的通道资源的占用。//调用这个函数,参数给一个指定的中断线,软件触发一次这个外部中断,如果只需要外部引脚触发中断,就不需要这个函数。//用来配置AFIO的事件输出功能的。
2024-05-20 08:55:31
894
原创 固件库的安装与系统电路图的学习
一开始觉得根本不知道是什么的东西,最后也能解决一二,我的经验是,不知道的东西不是你笨,而是教材默认你之前会从而忽略了,所以给自己点信心,遇到不明白的可以找更基础的教材查缺补漏,过程很痛苦,结果很愉悦。
2024-05-16 10:16:45
1013
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅