
点滴经验
gyggzg
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在RT-Thread-Studio中添加arm_math库
在RT-Thread-Studio中添加arm_math库原创 2024-07-04 14:37:07 · 523 阅读 · 0 评论 -
在MCU上调试UDP遇到的两个问题
第2条产生的原因,多个MCU设备是挂在同一个交换机下的,虽然每个MCU设备的IP地址不同,但是MAC地址是相同的。在向上一个设备发送完报文后立马向当前设备发送报文,此时路由器中的MAC地址表还是上一个设备的,当前设备无法收到报文,等待两三秒左右地址表更新之后就能收到报文了。此问题将MAC地址更改为不同地址即可。第1条中问题产生的原因,网络调试助手被防火墙阻止了。表现的现象是可以发送报文到MCU端,但是MCU端发送的报文收不到。原创 2023-10-08 16:13:46 · 257 阅读 · 0 评论 -
NRF52832 UART接收不定长数据
方案参考的是Nordic的libuarte工程,但是我们这里面有soft device,其本身会占用一些外设,比如RTC0,TIMER0等。那我们就只能选择其他外设,这里选用TIMER1和TIMER2。在使用NRF52832做串口透传的时候,示例程序里UARTE,接收长度为1个字节。如果串口接收到长数据(测试了1K),则很容易导致蓝牙发送的超时重启。解决方案:使用PPI功能,使串口具备接收不定长数据的能力。原创 2023-06-14 17:33:57 · 1432 阅读 · 2 评论 -
深入探究STM32H743 FDCAN的Message RAM
STM32H743 FDCAN的Message RAM研究原创 2022-07-28 22:39:58 · 1869 阅读 · 2 评论 -
调试STM32H743,RTThread&LwIP,踩坑记录
很久之前看过LwIP的一些内容,感觉好复杂。这次一个项目用到了网口,打算结合RT-Thread,移植一下LwIP。鉴于MDK中Compiler 5已经不再更新,此次移植直接基于Compiler 6。因为公司之前有一个很简单的UDP的协议,基本可以直接跑通的,要移植一个自己不太熟的协议栈,心里还是做了很多斗争的。先确定技术路线吧。RT-Thread有官方移植好LwIP,但是公司现在还没有使用RT的那一套环境开发,一直以来用的是CubeMX。CubeMX里RT-Thread和LwIP能单独配置,但是不能生成原创 2022-05-30 21:02:26 · 3199 阅读 · 2 评论 -
STM32H743 standby 模式调试记录
无法进入standby或者进入之后被意外唤醒原创 2022-03-03 20:54:25 · 1249 阅读 · 0 评论 -
关于使用SPI总线读取并转串(74HC165)发生数据移位的问题
关于使用SPI总线读取并转串(74HC165)发生数据移位的问题背景:使用STM32H743主控,通过SPI读取74HC165的数据,74HC165接了7个按键。现象:在所有按键都没按下的时候读取到的数据应该为0x00,按下某个按键对应的bit应该变成1。实际测试发现不按任何按键的时候数据是0x01,按第一个按键的时候读取到0x03,依次类推。按键对应的bit错了一位。原因:SPI的初始化代码如下:void MX_SPI5_Init(void){ hspi5.Insta原创 2021-04-08 21:26:09 · 5251 阅读 · 1 评论 -
STM32更改了程序之后再次下载会无法发现芯片的问题
在调试STM32的过程中会不停的改动优化自己的代码,有时候会出现把改动的代码烧录进单片机之后运行不正常,再次烧录发现调试器连芯片都找不到了。根据自己的经验,出现这种问题的原因可能有:时钟超频,导致芯片被锁。 调用STM32的设备库函数初始化寄存器的时候用了野指针导致芯片被锁。此种情况不一定会导致芯片被锁。这种问题的解决办法:BOOT0拉低,BOOT1拉高,上电用调试器把正确的代码烧录进去即可解锁,之后可以正常烧录了。至于STM32的锁定机制,未有深入研究。...原创 2020-09-05 16:53:04 · 1767 阅读 · 1 评论 -
CAN的显性位与隐性位
CAN显性位:CAN_H与CAN_L的电压差为2V,用0表示。CAN隐性位:CAN_H与CAN_L的电压差为0V,用1表示。总线仲裁的时候显性位胜出,所以ID小的帧会胜出;仲裁段的最后一位远程帧标示,远程帧的时候是1,为隐性位,会失败。所以相同ID的帧数据帧的优先级高于远程帧。帧的起始位为一位显性位,帧结束为7位隐形位。...原创 2019-11-12 17:00:17 · 8411 阅读 · 0 评论 -
Stm32 ADC在DMA中切换不同的采集源
应用背景:一个双通道DO输出芯片,能反馈两个通道的电流,但是只有一个反馈引脚,不同的通道需要用单片机控制切换 。把反馈引脚接到单片机的ADC,然后在程序中进行切换。代码如下:void Adc2_init(void){ ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStruct...原创 2019-10-11 22:11:23 · 563 阅读 · 1 评论 -
关于KEIL(MDK)调试代码下载完直接全速运行且打断点无效的问题
今天优化公司代码。拿到代码之后,用Jlink连上设备,点击调试按钮,下载完成就自动开始全速运行了,观察程序里的tick,也确实在不停的增加,但是在tick中断里打断点,程序无法停止,tick还是在不停的增加。用Jlink、Ulink都是一样的问题。在网上查了很多资料,没有有效的解决办法。后来想起来公司的程序都是分成两部分,一部分是IAP程序,我们也叫做BOOT,另一部分是APP程序。而需要...原创 2019-10-10 22:19:30 · 4327 阅读 · 0 评论