- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 CAN通讯多帧丢包的某种原因
在这种状态下,节点将停止在总线上发送和接收消息,以避免进一步干扰总线的正常通信。最近在搞两块板子直接的通讯协议,想把PC用串口发送的数据通过板卡1的CAN口透传给板卡2的CAN。问题的现象就是我PC同时发送多条串口数据的时候,比如我一条串口数据要分成两包发送,通过CAN调试器发现会有某一条或者多条的串口数据只有第一包的CAN数据发送,第二包丢失了。根据调试器的收发情况判断是回复的信息打乱了分包的发送,也就是第二包数据发送的时候在仲裁段被回复的数据占用了总线,所以丢失了。将这两位使能后通讯正常!
2024-11-18 17:27:27
676
原创 STM32F042串口配置乱码问题总结
仔细对比了一下引脚的定义啥的都是对的,但是在程序调试的过程中发现当我调用串口发送函数时,串口调试助手并没有收到任何东西,但是可以看到的是TDR寄存器也就是发送数据的寄存器里的值就是我要发送的东西,思考半天没有找到解决办法后我用STM32CuBX配置了一个串口输出的HAL库程序,烧录进板子后发现串口助手有收到信息了,但是都是乱码。网上能搜到的串口输出乱码的问题一般都是波特率和时钟配置的错误,但是我的参数配置都是对的。针对这种的我们要只用USB-TTL的连接器,连接好之后发现串口输出正常。
2024-05-13 09:35:31
427
原创 STM32 ADC多通道采集数据错位问题
在这里我不禁感慨,对于我这种嵌入式新手来说网上的例程虽然很多,但是往往也伴随着很多问题,我们要多去理解寄存器相关操作的意义,并对应相关的数据手册理解,多多思考能帮助我们深刻理解并掌握知识。之前板子只用到单通道采集温度值,现在需要同时采集两个通道的温度值,按网上的配置写好相应代码后,在调试的过程中发现两个通道的值时长发生错位的情况。当我们一次读取一个通道时要把其他通道关闭掉。在开启时先把所有通道全部关闭这样就不会有之前的问题了。
2024-05-09 15:00:55
1331
原创 Keil在线调试程序乱跑
这个选项什么意思呢,简单来说就是编译器的优化等级,一共四个等级0-3等级越高优化效率越高。具体相关等级的优化效果可以去查keil的说明手册,我这里大概简述一下高等级的作用:优化你的代码,提高代码运行的效率。我不停地单步执行,奇怪的事情又发生了:有时候到了while判断就直接出来,有时候又会执行191和192两行,但是TCENABLE的值一直是没有变化的。如果你是资深玩家那么提高优化等级无疑是一件好事,因为编译器优化的只是最后执行的过程,如果你能看懂汇编就会发现并不会优化汇编部分。
2023-06-27 10:00:18
1230
原创 ADC转换数据异常
测试多组数据后,我发现输出的数值并不符合常理,通过调试模式我发现ADC转换出的值在同一情况下会输出不同的值,而且是规律性的重复。传感器内部会根据所测数据的变化产生电压变化,将电压值传入芯片的AD转换器中,再通过软件读出ADC转换的值,最后根据相关公式测算出传感器所需要测试的数值。当时我只看到原理图上ADC输入引脚为PA5,没有去改通道号,查询手册后才发现对应的IO口必须设置对应的通道号,相应的设置可以去对应芯片的手册上查询,将引脚号和通道号设置同步后再去测试,发现数据正常。
2023-04-24 10:23:07
880
1
空空如也
CAN接收中断产生多次回复
2023-06-16
ADC获取值如何滤波变得平滑
2023-04-26
运行提示image是nullptr引发未处理的中断怎么回事
2023-03-01
"CPaintDC" 没有成员 "TextOutW"
2023-02-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人