- 博客(29)
- 收藏
- 关注
原创 霍尔编码器配置
TI1 and TI2表示双触发模式,即A相和B相的上升沿都会触发编码器计数。uwTick每1ms加1。Encodor.c文件。Encodor.h文件。
2024-11-06 17:37:15
181
原创 HC-SR04超声波测距模块
回响信号引脚:配置成外部中断,上升沿产生中断,打开单片机内部定时器,开始定时,下降沿再产生中断,读取定时器里面的值,该值为高电平的时间。触发引脚:需要10μs的高电平,设置成GPIO。HC_SR04.h文件。HC_SR04.c文件。
2024-11-06 01:01:05
160
原创 _weak弱修饰符
假如工程中存在了一个__weak 修饰符的函数,用户还可以在工程中重新定义一个与之同名的函数,最终编译器编译的时候,会选择没有__weak 修饰符的函数,如果用户没有重新定义新的函数,那么编译器就会执行 __weak 声明的函数,并且编译器不会报错。原文链接:https://blog.csdn.net/m0_37697335/article/details/81628417。其实函数名称前面加上 __weak 修饰符,我们一般称这个函数为“弱函数”。首先弱是相对的,具体弱在哪里?
2024-11-05 23:47:37
288
原创 问题:../Core/Inc/OLED_Font.h(6): error: #20: identifier “uint8_t“ is undefined
关于stdint.h,参考以下。
2024-11-02 17:07:08
208
原创 解决:..\Core\Src\MyI2C.c(82): warning: #188-D: enumerated type mixed with another type
把数字1/0换成GPIO_PIN_RESET/GPIO_PIN_SET,警告消失。以以下代码为例,这里有3个警告。在gpio.c的文件中找到。
2024-10-31 00:36:01
472
原创 ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h(95): error: #101: “DMA1_Channel3_IRQn“ h
删除:标准库复制过来的。
2024-10-31 00:22:26
640
原创 静态变量
代码2中,我们从输出结果来看,i的值有累加的效果,其实 test函数中的i创建好后,出函数的时候是不会销毁的,重新进⼊函数也就不会重新创建变量,直接上次累积的数值继续计算。代码1的test函数中的局部变量i是每次进⼊test函数先创建变量(⽣命周期开始)并赋值为0,然后++,再打印,出函数的时候变量⽣命周期将要结束(释放内存)。1.static修饰局部变量。
2024-10-23 22:35:45
322
原创 标准库——串口
Seiral.cSerial.hmain.c现象:写了数组的函数最后只收到了最后一位,出现的问题是标红部分忘记加了//等待TDR的数据转移到移位寄存器,避免发送数据覆盖//USART_FLAG_TXE为发送数据寄存器空标志位。
2024-10-23 17:09:55
1675
原创 hal实现PWM驱动舵机
在文件stm32f1xx_hal_tim.c中寻找定时器的驱动函数。CCR:500~2500(可调整)配置定时器2的通道2。
2024-10-18 09:35:35
259
原创 hal库实现PWM呼吸灯
在stm32f1xx_hal_tim.c文件中找到pwm的驱动函数。CCR的值默认20(可以先不用配置,后面会有一个函数可以修改)main函数while中设置CCR的值。配置定时器2(TIM2)在main函数中调用。
2024-10-18 08:11:30
171
原创 hal库定时器外部时钟源
的函数,该函数将作为定时器周期性中断的回调函数。在定义这个函数时,你需要编写需要周期性执行的代码。if (htim->Instance == TIM3)和if (htim == &htim3)语句的作用是判断当前使用的定时器是否为TIM3。在hal库中也有专门的函数。
2024-10-17 12:26:24
348
原创 hal库定时器定时中断
只是笔记基本是文章补充一些知识:如何配置定时器时间,设置ARR和PSC的值开启中断寻找更新中断回调函数三、代码编写配置完HAL库后,用户只需要在初始化中开启和编写定时器中断回调函数即可。MSP初始化,中断服务函数等,CubeMX均已经完成这些工作。
2024-10-17 00:18:17
1940
原创 hal库复刻江协实现旋转编码器中断
左边接了一个10K的上拉电阻,默认没旋转的情况下,这个点被上拉为高电平,通过R3这个电阻输出到A端口的也就是高电平;当旋转时,内部的触点导通,则这个点就直接拉低到GND了,再通过R3输出,A端口就是低电平了,R3是一个输出限流电阻,是为了防止模块引脚电流过大的,C1是输出滤波电容,可以防止一些输出信号抖动。原文链接:https://blog.csdn.net/luckyme_/article/details/140226159。配置PB0 PB1为下降沿触发。
2024-10-16 17:46:39
277
原创 STM32学习笔记
选择Serial wire 才能用st-link调试工具。Cubemax的配置——LED闪烁。高速时钟晶振——外部晶振时钟配置。
2024-10-15 21:37:01
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人