问题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
问题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