STM32
直播中

杨勇

7年用户 1185经验值
私信 关注
[问答]

为什么STM32F103C8T6芯片的USART接收数据不进终端呢

为什么STM32F103C8T6芯片的USART接收数据不进终端呢?进接收中断后发现接收的数据与发送却不同呢?有何解决方法?

回帖(1)

杨芳

2021-12-13 13:36:35
问题1:硬件OK,USART接收数据不进终端
现象:
       硬件以及串口助手通过自检都没有问题,但是使用Keil Debug的时候发现,USART的SR寄存器中在每次接收到数据后,FE位都会置一,该位为帧错误位。具体什么是帧错误请百度,不赘述。且不进接收中断。
解决方法:
    排除硬件问题,时钟问题后,最终导致该问题的原因在于启动文件加载错误,我使用的是STM32F103C8T6芯片,应该加载的是startup_stm32f10x_md.s,我家在的xl.s
    -startup_stm32f10x_ld_vl.s: for STM32 Low density Value linedevices
- startup_stm32f10x_ld.s: for STM32 Low densitydevices
- startup_stm32f10x_md_vl.s: for STM32 Medium density Value linedevices
- startup_stm32f10x_md.s: for STM32 Medium densitydevices
- startup_stm32f10x_hd.s: for STM32 High densitydevices
- startup_stm32f10x_xl.s: for STM32 XL densitydevices
- startup_stm32f10x_cl.s: for STM32 Connectivity linedevices
cl:互联型产品,stm32f105/107系列
vl:超值型产品,stm32f100系列
xl:超高密度产品,stm32f101/103系列
ld:低密度产品,FLASH小于64K
md:中等密度产品,FLASH=64 or 128
hd:高密度产品,FLASH大于128


问题2:进接收中断后发现接收的数据与发送的不同
解决方法:
     时钟与波特率都计算过了,都没问题,但是接收数据还是会出现丢失的情况,后来发现如果RXD接口没有接上拉电阻的话就将该引脚模式设置为内部输入上拉。悬空的话可能导致数据出问题。配置如下








以上问题仅为个人遇到问题,仅提供解决思路,避免走弯路,具体问题具体分析,相信问题的发生一定是有原因的,一步一步的用专业的思维去解决。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分