完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
前言:
本文主要利用stm32芯片,完成单片机与计算机的通信过程,单片机不停给计算机发送信息,计算机在串口调试助手发送停止指令之后,单片机停止发送。通过这个小实验学习窗口通信 一、串口通信要求
1、硬件准备
主函数: #include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "usart.h" #include int num=1; int main(void) { char stop[]={'S','t','o','p',',','s','t','m','3','2'}; u16 t; u16 len; u16 times=0; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //LED¶Ë¿Ú³õʼ»¯ KEY_Init(); //³õʼ»¯Óë°´¼üÁ¬½ÓµÄÓ²¼þ½Ó¿Ú while(num) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È printf("rnHELLO Livechen:rnrn"); for(t=0;t for(t=0;t USART_SendData(USART1, USART_RX_BUF[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø } printf("rnrn");//²åÈë»»ÐÐ USART_RX_STA=0; } else { times++; if(times%500==0) printf("HELLO Livechenrn"); if(times%200==0) printf("HELLO Livechenn"); if(times%30==0)LED0=!LED0;//ÉÁ˸LED,ÌáʾϵͳÕýÔÚÔËÐÐ. delay_ms(10); } } } 三、下载程序进入STM32 1、下载之前相关配置
编译通过后点击下载 四、最终效果展示 总结: 实验过后对于串口通信的过程有了比较清楚的认识,实验中遇到了许多困难,最终都找到了解决的方法,成功完成了通信。博主也是第一次接触串口通信,博文中难免有许多不足的地方,若大家提出来博主会及时改正 |
|
|
|
只有小组成员才能发言,加入小组>>
2351 浏览 0 评论
878浏览 2评论
521浏览 1评论
1403浏览 0评论
285浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 07:58 , Processed in 1.304680 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191