- 博客(71)
- 资源 (18)
- 收藏
- 关注
原创 LSM6DSV16XTR STM32 硬件spi驱动
在使用LSM6DSV16XTR时硬件i2c接口被占用,不想要共用其他设备所以就把芯片的接口从i2c改为spi接口。
2025-01-14 17:43:07
373
原创 超声波追频
1 因为系统一直是恒流状态,则可以追踪最小电压或者最小阻抗(基于压电换能器谐振网络幅频特性的频率跟踪技术),再辅助相位关系,还有变化斜率(超声电源频率自动跟踪的模糊控制算法研究)2 设置相位、电压追频范围,到一定的范围再启动追频3 扫频时确定谐振点,工作时直接给此点的频率4 桥式电路追频(大功率超声用有源频率自动跟踪系统)...
2025-01-14 17:29:41
174
原创 stm32wb p2pserver
app_entry.c 初始化BLE传输层和BSP(例如LED和KEY)app_entry.c:初始化BLE传输层和BSP(例如LED和按钮)app_conf.h: 添加task id, 枚举变量直接赋值。app_ble.c:初始化GAP并管理连接(例如广播和扫描)p2p_server_app.c:初始化GATT并管理应用。app_conf.h: 添加task id。按键PD1配置为外部中断,添加中断处理函数。app_ble.c 配对事件。变量初始化与按键动作函数声明。
2024-12-13 18:27:21
437
原创 STM32WB55 FUS烧录
FUS下载是指通过FUS服务进行固件更新的过程。通过FUS下载,您可以通过无线方式将新的固件加载到STM32WB设备中,而无需使用传统的有线编程方法。通过点击"Read FUS infos"按钮,来读取安装在STM32WB微控制器中的FUS(Firmware Update Service)版本信息。这里为1.2.0.0。如果read fus 发现当前版本已经为1.2.0则无需再升级stm32wb5x_FUS_fw.bin文件,直接进行蓝牙协议栈的烧录。进入固件升级服务,点击FUS图标。
2024-12-09 16:17:57
455
原创 STM32WB55RG----FUS和stack更新
烧录成功后点击Read FUS infos观察FUS Version和STACK Version两个版本分别对应以上烧录的两个bin文件。1 stlink连接开发板,打开STM32CubeProgramer, 保证连接正常。6 选择bin文件,填写烧录地址,首先烧录FUSbin文件。烧录成功后点击start FUS。
2024-11-19 16:49:50
422
原创 TMS320F28335学习笔记-时钟系统
下载controlSUITE后发现:controlSUITE\device_support\f2833x路径下有6个版本的库文件,分别是v132\v133\v140\141\v142\v2.00。在该版本种v2.00的库需要下载c2000ware后获得,c2000ware的C2000Ware_5_00_00_00\device_support\f2833x路径下的common\和headers\文件夹即为v2.00的库,也是因为要配合matlab使用所以c2000ware使用了5.0的版本,其他同理。
2024-05-08 15:29:51
517
原创 基于stm32g474高精度定时器HRTIM的移相全桥
全文参考了这位up主的视频教程,需要观看的请移步,本文仅作为本人记录使用。https://www.bilibili.com/video/BV1944y187Ag?from=search&seid=566528707459464947&spm_id_from=333.337.0.0视频中设置了4组PWM信号,本人应用于PSFB仅需两组互补PWM即可。配置目标:两组互补pwm频率:110KHz死区:400ns占空比:50%初始移相角:33度TimerA不移动,
2021-09-09 15:18:49
5445
原创 h桥逆变-滤波
1 常K型LC滤波器高频用定K型LC低通滤波器的简便设计设计要点如果先确定了特性阻抗Z,那可分别应用L=Z/(2πfo.z)公式计算出电感和电容量。普通滤波器的-3DB截止频率FO在这里为FO≈1.5FO。如果FC=1.5MHZ,因为FO=FO/1.5=800KHZ,所以L=119UH,C=331PF。本电路采用了市场采用了市场上出售的固定电感器,所以L、C分别为100UH、330PF时对特性阻抗600欧不会有太大影响。...
2021-06-16 19:51:49
2566
原创 layout失败例程分析
驱动芯片供电的地尤为重要,此处没有处理这个关键点,应该如上图布局,单点接地。改进接法还需要验证辅助电源上串联的二极管作用
2021-05-26 23:05:14
234
原创 mqtt测试服务器
服务器地址:47.105.141.172端口:1883用户名:guest 密码:guest权限:guest/#发布消息测试:mosquitto_pub -h 47.105.141.172 -u guest -P guest -t guest/talk-m hello订阅消息测试:mosquitto_sub -h 47.105.141.172 -u guest -P guest -t guest/talk————————————————版权声明:本文为优快云博主「想做个好人.
2021-03-21 17:02:49
1077
原创 推挽调试记录
推挽调试时发现缺了一个肩:然后驱动信号如下:分析原因为驱动信号占空比相差太大引起偏磁,波形异常,同时mos也发烫。更改驱动信号如下:D极信号如下:两个肩都出现了。
2020-09-22 10:33:08
594
原创 多线程-线程池查询法
/*思路:main线程负责发放数据,其余线程抢数据,使用数据标志位来标记main线程发放的数据是否被取走(0未取走,1已经被取走, -1任务完成线程退出)当main线程查询到数据标志位是1(数据被取走)就继续下发数据当其余线程查询到数据标志位是0(数据未被取走)就取走数据并把标志位置1当main把数据发放完毕之后标志位写-1,其余线程拿到-1就退出,mian线程负责清理线程*/#include <pthread.h>#include <stdio.h>#inclu.
2020-08-24 13:46:41
570
2
原创 信号
void (*signal(int signum, void (*func)(int)))(int)使用sighandler_t容易造成名字空间冲突,所以还是使用上述定义方式;ctrl+c 等于 SIGINT 终端中断符忽略信号#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h...
2020-08-22 13:35:18
129
原创 多线程
进程的产生fork()调度器的策略决定哪个进程先运行父进程及子进程的区别:fork返回值不同,pid不同,ppid不同,文件描述符/信号不继承fork之前要先 fflush(NULL)进程的消亡及释放资源wait()waitpid()#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <.
2020-08-21 13:09:32
131
转载 SCCB总线
SCCB总线就是简化了的I2C总线使用SCCB总线目的是为了读写寄存器,所以只需要掌握总线读写就ok了, 可以参考该文章:https://blog.youkuaiyun.com/weixin_43529046/article/details/904538153阶段写就是直接操作寄存器写器件地址,写寄存器地址,写数据 就完成了寄存器写入写入之后如果想读取一下看是否写入成功可以用两段读,...
2020-01-06 16:30:20
1128
原创 5v过压保护电路
假如要在6v切断输出可以按照上边计算的公式进行配置,实测5.8v切断输出,但是到10v左右的时候电路开始冒烟,虽然恢复到5v之还是正常工作不过还是需要继续调整参数但是作为保护电路有一点不足: 管子是常开的, 过压一上电齐纳还没反应过来就已经把负载干死了,齐纳的响应还是太慢还是直接加个TVS算了...
2019-11-20 17:35:27
5062
5
原创 单按键长短按状态机
1 短按以松手作为触发条件2 长按以2秒钟未松手作为触发条件3 按键按下为0 松开为1 4 key_return 0 未按下 1 短按 2 长按伪代码如下:enum key_state{ S0=1, S1, S2, S3};char key_scan(){ static char key_state = 0, key_time = ...
2019-11-15 16:02:35
558
原创 KEY
1 MAX1383引发输入波形畸变的问题如果在模拟端串入电阻是否可以解决?2 原始代码中FFT是128点, comsis中FFT支持多少点?3 血管闭合应该是采集初始阻抗 然后根据输出功率曲线 达到阻抗的百分比时候或者阻抗急速升高的时候关闭输出以此来防止黏连...
2019-11-12 16:40:19
175
原创 基于STM32CUBEMX的HAL库完成两片STM32的IIC通信
参考资料:1https://blog.youkuaiyun.com/u011456016/article/details/702335992https://blog.youkuaiyun.com/g_crisis/article/details/822277683https://www.cnblogs.com/xingboy/p/9647326.html主机侧:主机侧测试代码:int...
2019-09-04 14:15:31
1701
原创 利用stm32高级定时器的重复计数实现输出精确个数的pwm波
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;利用该配置完成输出精确数量的PWM波形,但是该值取值范围是[0, 255], 如果需要大于该数值的pwm波个数,可以对中断进行计数,当达到需要的脉冲个数之后再关闭pwm即可....
2019-09-02 11:14:11
4761
原创 关于stm32启动及运行异常
在测试stm32的时候发现最简单的串口打印demo都无法运行,而且现象特别奇怪:1 下载后程序无法自动运行2 调试的时候要点三次full speed才能进入c代码, 前两次看到都是在反汇编代码的窗口中运行, 进入c代码之后可以正常打印.排查可疑点:1 boot0与boot1设置是否正确, 如果boot引脚设置错误就会引起无法启动2 设置界面的run to main是否勾选...
2019-06-05 22:49:03
2349
原创 关于mos驱动芯片的layout
在绘制buck电路的过程中发现layout对电路的影响较大. 高手指出了我绘制电路中的问题, 如下:各个回路的面积都比较大, 下边是更改后的layout,还是不够好,不过经过调试后输出也基本能符合要求了, 可以对比一下.在调试的时候还发现另外一些问题:上管的驱动波形为啥会突然下跌然后又上升,200khz 4.7nf 感觉是这个自举电容小了,增大自举电容后波形改...
2019-05-17 14:24:30
4136
原创 H桥电路中mos管串联二极管的作用
因为MOSFET的体二极管速度太慢,有反向直通,所以采用一个二极管串联在外面,外面再整体并联一个而且高压瞬态完全不一样的,就现在大家做的逆变器,全桥,都是没有考虑这个直通的,因为这个直通的时间都是次ns级以内的MOS还是可以扛住的,然后遇到那种变态的高可靠性要求,全部都算FAIL串联二极管没有特殊要求只需要电流够就行 ...
2019-02-13 14:11:35
5576
原创 stm32基于CUBEMX使用LL库操作spi
keil v5CUBEMX v5mcu:stm32f429igt6因为项目中需要快速采集外部spi接口adc的数据,所以研究使用LL库读取spi数据。cube中打开spi功能设置为LL库spi读取可以自己实现while((SPI1->SR & 1<<1) == 0);//wait for tx buf emptySPI1-&g...
2019-02-12 16:34:22
13336
原创 keil使用v6.10.1编译器时更改添加代码解决串口打印无输出的问题
KEIL:5.26编译器:6.10.1cubemx:5.0.1之前一直使用v5编译器,使用printf的时候需要在uart.c中添加如下代码:/* USER CODE BEGIN 1 */#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small...
2019-01-17 10:43:10
1474
1
原创 使用cubeMX完成STM32定时器触发多通道adc并用DMA读取的功能
cubeMX 5.0.1KEIL 5.26compiler: v6.10.1 cubeMX中设置:定时器:ADC:开启通道1和通道2DMA: main.c HAL_TIM_Base_Start(&htim8); HAL_ADC_Start_DMA(&hadc1, (uint32_t *)&adc_val[0],...
2019-01-15 23:19:52
11085
原创 STM32F4基于cubeMX使用HAL库读取内部adc值并解决ad值不会变化的问题
mcu:stm32f429库:HAL打开两个adc通道,使用规则序列注意这里选择half word的时候,程序里的缓冲区就要写成uint16_t buf[];主程序 main.c/* USER CODE BEGIN PD */uint16_t ADC_Value[100];uint8_t i;uint32_t ad1,ad2;/* USER CODE END...
2019-01-02 17:04:42
8401
2
原创 LM2576HV调节负压输出拉低输入电压
LM25x6xx正压转负压的应用中,经常出现拉低输入电压到3v左右并伴有巨大的电流, 芯片发热的情况发生.一般有如下三个原因:1 芯片的散热焊盘PAD接错, 在生成负压的电路中PAD一般接负电压而不是GND2 输入电容的负极接错, 其中LM2576和LM2596的输入电容接发是不一样的.3 芯片启动的瞬间需要非常大的启动电流, 如果输入电流不够就会导致启动失败,这种情况可以增大输入电容...
2018-11-18 20:05:37
4012
原创 stm32cubeMX下使用STM32F334的HRTIM生成互补对称PWM并插入死区
1 stm32cubeMX配置这里一定要配置成PLLCLK*2实际效果:main.c中需要添加的代码: HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1 | HRTIM_OUTPUT_TA2);//通道打开 HAL_HRTIM_WaveformCountStart(&hhrtim1, H...
2018-11-12 20:06:37
7123
2
原创 两片STM32使用HAL完成SPI全双工主从通信
SPI是一种非常简单易用的全双工主从式通信协议。本文使用两片STM32F429,一个作为主机,一个作为从机完成SPI的全双工通信测试。在STM32的HAL库中简化了SPI主机端的发送接收,但是HAL库没有提供一个简单的SPI从机代码接口,这样就需要自己拼接接口来完成全双工的通信。以下都以实现全双工通信为目的进行配置和编写:一 主机端:禁止使用SPI的硬件片选信号,因为这个信号是...
2018-10-31 11:40:27
19764
10
原创 使用stm32的HAL库完成pwm输入模式测量频率和占空比的详细教程
STM32定时器具有PWM的输入捕获模式。PWM输入捕获是定时器输入捕获的一个特例,单通道的输入捕获只能获取波形的频率,但是PWM输入捕获可以获取到频率和占空比,对应的高低电平宽度也就能获取到。 它的时序如下图所示: 使用cubemx配置方法: 就是使用TIM2的ch1和ch2来捕获一个pwm信号。这里只测试了update event,我测试55khz使用该分频与计数值...
2018-07-17 14:00:51
23205
3
转载 关于STM32F4的IAP的一点点记录
看了原子的STM32的IAP 教程,一开始还以为bootloader是啥意思,差点跟uboot搞混淆了,其实stm32的“bootloader”不需要自己写汇编和链接脚本,Boot和App都是单片机程序,只是实现的功能不同,前者是为了引导App,后者是为了实现业务逻辑。只不过boot是有写flash或者sram的功能,再加上通信口(USB/USART etc. )来接收所谓的应用程序app...
2018-03-07 20:52:26
2675
转载 stm32 不断进入串口中断的bug解决方法
在使用stm32的时候,发现usart会莫名的卡在串口中断里,然而串口初始化只配置了RXNE中断,打断点发现不断进入中断却没不是RXNE中断引起的,经过查找资料发现是ORE的问题,2篇博文解决方案如下:http://bbs.21ic.com/icview-160999-1-1.html及http://blog.youkuaiyun.com/origin333/article/details/49992383大...
2018-03-04 15:00:20
14441
原创 Qt使用上一次打开的路径
在Qt中使用QFileDialog::getOpenFileName和QFileDialog::getOpenFileName的时候默认是打开某一个路径, 如果要多次选择某个路径下的多个文件, 就需要使用上次打开的路径.实现方法如下所示: QDir dir; QFileDialog::Options options; options
2017-03-06 09:59:36
4516
转载 线程的分离与非分离状态
线程的分离状态决定一个线程以什么样的方式来终止自己 非分离 【joinable】 分离 【detached】非分离的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的【默认状态】分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放这里要注意的一点是,如果设置一个线程为分离线程,而这个线程运行又非
2017-02-04 15:00:30
4019
uart_dma_idel.zip
2020-05-11
进程管理与通信总结
2012-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人