stm32f103rb_调试

来源:互联网 发布:初高中网络培训机构 编辑:程序博客网 时间:2024/05/22 06:20

问题1:debug(sw通讯方式)失败,使用ulink2、keiluv4。

解决办法:升级keiluv4版本,原来版本为4.0.3升级之后为4.72版本如下图所示

问题2:在更换版本过程中出现arm lib 不能找到的问题。

解决办法:由于没有卸载前面的低版本,而XP系统环境变量指向原来的keil安装位置,在编译程序过程中就会出现一些类似的错误,最好将前面低版本卸载掉,当然也可以试一下删除XP环境变量。

ps:   
这两项去掉,不然debug下载 flash 地址出现错误情况。


问题3:外部8Mhz晶体振荡器不震荡,STM32 HSE开启失败,使用HSI程序工作正常。

解决办法:硬件应使用无源晶振,但连接了一个有源晶振。


问题4:lcd显示明显偏灰,对比度不正常。

解决办法:对比datasheet 数据手册,升压电容偏小,应将103电容换为1uf。


问题5:stm32和主机spi通讯失败,数据传输数据通过逻辑分析仪测试正常。

解决办法:1. stm32 spi 从接口使用双线单工模式,连线错误,应使用MISO引脚作为

SPI从接口输入,主机应从该接口传入数据。2. spi模式相位出错,调整匹配后ok。


问题6:块显示硬件错误。
解决办法:增加指针地址中间变量,数据类型匹配,存储空间匹配,否则会出现硬件错误。


问题7: 显示字符不正常。
解决办法:定义空间越界。



问题8:软件复位STM32 MCU测试
解决办法:ok如下图所示。

问题9: STM32 debug 接口导致keil软件卡死。
解决办法:在调试过程中发现如果查看1024字节的缓存空间,就会导致keil
软件卡死。

问题10:spi通信在主机电源供电模式切换之后出现spi数据采集出错,使用STM32单工硬件模式数据采集出错,更换为spi软件IO模拟方式依然数据采集错误(硬件方式会置位bsy位导致通信数据错误)。
解决办法:软件IO方式使用定时器去抖动。
graphic

问题11:使用STM32定时器去抖动,spi数据采集错误。
解决办法:使用gpio翻转测试spi数据采集,发现timer2设置时间>5us(spi数据位时间)导致数据传输出错,测试最短时间设置timer,使用重载模式——>TIM_GenerateEvent();用于更新timer寄存器。

问题12:stm32 TIM_GenerateEvent溢出更新函数使用,TIM_GetFlagStatus 得到状态会为set态(清掉之后)。
解决办法:待测试中。

问题13:添加缓冲数据处理,命令丢失。
解决办法:边界数组索引比较异常,导致数据丢失,调整比较数据值,中断变量值,采用读出缓冲处理,而非每次读出。


问题14:SRAM值被异常改变timer。
解决办法:通过keil map查看timer全局变量相邻变量,追踪操作,发现数组访问溢出,
访问数组之前需要检查下标。


问题15:stm32 程序下载入第二版PCB 程序运行错乱。
解决办法:stm32 boot引脚电阻过大导致电压过低,启动不正常,去掉电阻ok。

问题16:输入模式 PIN脚默认读出电平值不正确。
解决办法:设置输入模式为下拉则默认读出值为 0 ,反之则为高电平。

问题17:IIC通信过程出现 异常stop信号(使用逻辑分析仪器测试)。
解决办法:在getACK/sendACK/sendNOACK之后将SCL拉低,防止切换 stm引脚 输入/输出模式
导致stop信号产生。

问题18:添加RTC时钟芯片操作函数后,SPIslave 通信失败。
解决办法:添加的SPI MASTER操作模式之后,clock gpio 模式设置冲突,暂时去掉,解决问题。



0 0
原创粉丝点击