求教:protues8.0+vsdp+串口调试助手,STM32只能正常接收第一个数据

在protues环境下,使用STM32F103R6进行串口通信时遇到问题,能接收到数据但仅处理第一个字符。配置包括8M时钟和9600波特率,中断程序与主函数已编写,但发送后的数据重传时只有首字正确。已尝试正点原子函数库,但未能解决问题。
摘要由CSDN通过智能技术生成

求教:protues8.0+vsdp+串口调试助手,STM32只能正常接收第一个数据


前言

在protues中添加STM32F103R6芯片、添加COMPIM串口、LED显示灯。使用U5编写串口通信程序,将编写好的程序下载到protues中,时钟均设置为8M,串口波特率设置为9600。开始模拟后,可以收到串口发送的数据,但是发送串口数据给STM32后,将数据再发送,只有第一位数据是正确的。


一、Protues配置

Protues8.0。

芯片选择STM32103R6,晶振选择8M,COMPIM波特率选择9600,D1为发送数据时闪烁,D2上电点亮,接收数据后灭。

二、程序

1.串口中断程序

代码如下(示例):

void USART1_IRQHandler(void)                	//串口1中断服务程序
	{
   
	u8 Res;
#if SYSTEM_SUPPORT_OS 		//如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
	OSIntEnter();    
#endif
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
		{
   
			Res =USART_ReceiveData(USART1);	//读取接收到的数据
			USART_RX_BUF[USART_RX_STA]=Res ;
			USART_RX_STA++;  
			if
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值