[STM32F1] 串口如何发送数组,为何一次显示一个数据?

[复制链接]
1172|15
 楼主| 将心明月 发表于 2020-11-4 21:16 | 显示全部楼层 |阅读模式
如题,想要的效果是单片机发送十六进制的A3  55  44  80  03  00  05到串口助手,结果显示的却是一次显示一个数据,求解,代码如下~
  1. /****************************************************************************/
  2. int main(void)
  3. {               
  4.         u16 t;  
  5. //        u16 len;        
  6. //        u16 times=0;
  7.         int a[7]={0XA3,0X55,0X44,0X80,0X03,0X00,0X05};
  8.         int i=0;
  9.         delay_init();                     //延时函数初始化         
  10.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  11.         uart_init(115200);         //串口初始化为115200
  12.         LED_Init();                             //LED端口初始化

  13.         for(t=0;t<7;t++)
  14.         {                                                                  
  15.                     LED0=0;        
  16.                         delay_ms(300);                 
  17.                         USART_SendData(USART1, a[i] );//向串口1发送数据
  18.             while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
  19.                         i++;
  20.             LED0=1;
  21.                         delay_ms(300);
  22.         }         
  23. }
  24. /****************************************************************************/




月亮一键变蓝 发表于 2023-1-14 09:57 | 显示全部楼层
你的delay咋还能在发送的函数里呢?

她已醉 发表于 2023-1-14 10:29 | 显示全部楼层
是因为delay导致的吧
将爱藏于深海 发表于 2023-1-14 11:02 | 显示全部楼层
属实啊,你延时太久了,被认为是2次数据了
故意相遇 发表于 2023-1-14 11:34 | 显示全部楼层
将延时去掉就好了
白马过平川 发表于 2023-1-14 12:06 | 显示全部楼层
你发数据不能加delay这么大的,300ms,不行
春日负喧 发表于 2023-1-14 12:38 | 显示全部楼层
去掉delay_ms(300);试试
风凉 发表于 2023-1-14 13:10 | 显示全部楼层
发数据就正常操作嘛,你不能在发送数据的时候还控制灯的
西洲 发表于 2023-1-14 13:43 | 显示全部楼层
将代码里的delay去掉就好了
捧一束彼岸花 发表于 2023-1-14 14:15 | 显示全部楼层
因为你加了600msdelay,被上位机认为是2次数据了
一只眠羊 发表于 2023-1-14 14:47 | 显示全部楼层
你可以弄个协议,就是发送完成才算是一整包数据,这样就好了
SantaBunny 发表于 2023-2-3 19:27 | 显示全部楼层
你可以自己写一个连续发送的函数:只要发送前9个数据后,TI清零就成。
朝生 发表于 2023-2-10 15:17 | 显示全部楼层
你这程序问题还真不少。
Pretext 发表于 2023-2-10 15:20 | 显示全部楼层
是一直只接收到一个字符,还是开机就只接收一个字符就不再接收了?
芯路例程 发表于 2023-2-10 15:21 | 显示全部楼层
你把延时和灯的控制去了,然后循环中的i改成t。
SantaBunny 发表于 2023-2-11 10:11 | 显示全部楼层
可以弄个协议,发送完成就算是一整包数据了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部