STM32
文章平均质量分 52
Alan_Walker_One
这个作者很懒,什么都没留下…
展开
-
STM32F103C8T6的SPI收发数据错误的问题
项目场景:本人最近在做一个STM32F103C8T6的两个SPI模块自通信实验,旨在验证SPI收发数据的正确性。即事先设定好两个SPI模块发送的值,通过ST-LINK单步调试观察单片机内部寄存器的值。待发送的数据如下:同时定义两个SPI的接收数组:问题描述单片机全速运行时,发现传输结果中出现了数据错误:下图为单步调试中,两个SPI模块数组的接收内容:很明显和发送数据不匹配。原因分析:参考了网上的一些解决方案,有人说是因为在watch窗口中观察了SPIx->DR或原创 2022-05-22 14:46:42 · 3255 阅读 · 1 评论 -
STM32F103C6T6的两个SPI模块自通信实验中SPI2无法工作的问题
项目场景:最近打算用STM32的最小系统版进行SPI通信实验,想首先验证SPI工作是否正常及观察收发数据是否正确,便进行STM32F103上SPI1和SPI2自通信。问题描述利用单步调试观察SPI1和SPI2寄存器的值,发现SPI1中各个寄存器的值符合预先设定,SPI2中寄存器的值都为零。(0x40013000是SPI1的存储器映像地址,0x40003800是SPI2的存储器映像地址)原因分析:首先检查了SPI1和SPI2时钟及所在管脚的时钟是否开启,代码如下: /* 打开GPIOA原创 2022-05-22 12:15:34 · 2507 阅读 · 0 评论 -
STM32用ST-LINK无法单步调试的解决方案
项目场景:本人在刚接触STM32F103C6T6时,用USB转TTL转换器,通过串口下载程序,运行LED灯点亮程序,可以正常运行。问题描述但是用ST-LINK在Keil5软件上进行单步调试的时候,程序执行不到断点处,无法正常进行单步调试。原因分析:通过串口下载程序,和通过ST-LINK单步调试,单片机的启动方式是不同的。解决方案:之前通过串口下载程序时,BOOT0选择1引脚,BOOT1选择0管脚;那么要通过ST-LINK单步调试时,需要把启动方式改成:BOOT0选择0引脚,BOOT1原创 2022-04-29 17:17:01 · 1876 阅读 · 0 评论