你的启动文件选择不对!若果你的芯片支持UART4和UART5的话就用startup_stm32f10x_hd.s这个启动文件!在固件库里面就有:
...\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar这个目录下。
这里就有!
串口接收必须要用中断!
stm32扩展4路串口,可以用串口扩展芯片,这类芯片非常多,可选一两款外围元件少,电路简单的芯片。
推荐一,国产的,双串口芯片CH432
CH432 是双UART 芯片,包含两个兼容16C550 的异步串口,支持半双工收发自动切换和IrDA 红外编解码,支持最高4Mbps 的通讯波特率,可以用于单片机/嵌入式系统的RS232 串口扩展、带自动硬件速率控制的高速串口、RS485 通讯、IrDA 通讯等。
第二款,TL16C554。
这两个芯片在使用时外围件最少,电路相对简单些。
注意初始化是否正确!没有进入中断应注意中断使能位是否已经配置还,如果是根据别的代码修改的话还要注意:1、GPIO口时钟的使能和GPIO口模式的配置。
2、USART模块时钟的使能。
3、NVIC中断通道和优先级相关的配置!!!
能发送数据说明1、2应该是没问题的吧,如果第3点没有注意到的话是不会发生中断!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)