梵蒂冈为什么没人敢打| 温州人为什么会做生意| 喝什么茶养肝护肝排毒| 说一个人轴是什么意思| 吃什么能生精和提高精子质量| 大陆人去香港需要什么证件| 植物神经功能紊乱吃什么药| 生物医学工程专业学什么| 蛇缠腰是什么| 奎宁现在叫什么药| 怀孕为什么会流血| 梦见牙齿掉了是什么征兆| 喜欢穿黑色衣服的女人是什么性格| he是什么气体| 月加一笔是什么字| 痛经喝什么可以缓解| 菲律宾货币叫什么| 维生素h的作用及功能主治是什么| pyq是什么意思| 脚趾甲凹凸不平是什么原因| 中科院是干什么的| cpi下降意味着什么| 什么人不宜吃石斛| 4月15日是什么日子| 十指纤纤尽夸巧是什么生肖| 强制是什么意思| 龙井是什么茶| 胸部ct挂什么科| 牙齿为什么会痛| 7月1号是什么节日| 肉包子打狗的歇后语是什么| 头昏吃什么药| 高就是什么意思| 一个火一个丙念什么| 月子吃什么最下奶| 骑驴找马什么意思| 下岗是什么意思| 鼻子旁边长痘是什么原因| 脸上长痘痘是什么原因引起的| 句加一笔是什么字| 舌系带长有什么影响吗| 中央候补委员是什么级别| 乌鱼子是什么意思| 化险为夷的夷什么意思| 副处级干部是什么级别| pgi2在医学是什么意思| 孩子不长个子是什么原因| 新生儿吐奶是什么原因| 君子兰不开花是什么原因| 死精是什么原因造成的| 腱鞘炎是什么症状| 病理检查是什么意思| 腹胀是什么病的前兆| 孕酮低吃什么补得快| 想一出是一出什么意思| 什么是砭石| 八戒是什么意思| 睡觉流口水是什么情况| 交是什么结构的字| 早起胃疼是什么原因导致的| 急性上呼吸道感染是什么引起的| 梦见鞭炮是什么意思| 卵巢囊肿术后吃什么食物好| 尿液突然变深褐色是什么原因| 健康证有什么用| 桃胶什么时候采摘最好| 明矾和白矾有什么区别| 十点半是什么时辰| 细胞核由什么组成| 抽烟头晕是什么原因| 心律不齐是什么原因| 什么是普拉提| 什么是风湿病| 出汗多是什么病| 冲床工是做什么的| ck属于什么档次的品牌| 尿遁什么意思| 坚韧不拔是什么生肖| 小孩用脚尖走路是什么原因| 发烧了吃什么药| 石膏是什么成分| 什么狗不掉毛适合家养| 双肺纹理增强是什么意思| 座山雕什么意思| 发炎不能吃什么东西| 微波炉不能用什么容器| 郑成功是什么朝代的| 什么水果上火| 海明威为什么自杀| 锑是什么| 黄芪长什么样子| 脱水什么意思| 柚子什么时候成熟| 火热是什么意思| 阴道里面长什么样| 胆囊切除后对身体有什么影响| 馨是什么意思| 狗肉配什么菜好吃| 看病人送什么水果| 内分泌失调什么意思| 宝宝什么时候开始长牙| 丁克什么意思| 身体逐渐消瘦是什么原因| 溴隐亭是什么药| 耳膜穿孔吃什么长得快| 毛主席什么时候去世的| 什么血型招蚊子咬| 烤鸭为什么那么便宜| 甜茶为什么叫甜茶| 什么人容易得多囊卵巢| 山楂片泡水喝有什么好处| 崇洋媚外是什么意思| 什么的枫树| mi医学上是什么意思| 右侧中耳乳突炎是什么意思| giada是什么牌子| 峦是什么意思| 办护照需要什么条件| 潮汐车道什么意思| 睡觉腰疼是什么原因| 坚字五行属什么| 什么样的歌声| 表彰是什么意思| 申时左眼跳是什么预兆| 梦见偷鸡是什么预兆| 第六感是什么意思| 吃惊的近义词是什么| 萎缩性胃炎吃什么药能治好| gift是什么意思| 睡觉打呼噜什么原因| 脑病科是看什么病的| 胰腺管扩张是什么原因| 盆腔炎做什么检查能查出来| 拉屎像拉水一样为什么| 肾火旺吃什么药| 南京大屠杀是什么时候| 咳嗽雾化用什么药| 什么也不懂| 龟头流脓小便刺痛吃什么药| 吃蛋白粉有什么好处和坏处| 内招是什么意思| 什么是生长纹| 慢性萎缩性胃炎c2是什么意思| 颜狗是什么意思| 视什么如什么| 什么样的房子不能住人脑筋急转弯| 开小灶是什么意思| 银手镯为什么会变黑| 茉莉花是什么颜色| 乳头瘤病毒是什么病| 松花蛋是什么蛋| 龙凤胎是什么意思| 松鼠咬人后为什么会死| 林黛玉和贾宝玉是什么关系| 梦见自己掉了两颗牙齿是什么意思| 一天什么时候最热| 宝宝发烧吃什么药| 动脉硬化吃什么可以软化血管| 无忧是什么意思| 进德勤一般要什么学历| 深千尺是什么意思| 点痣后用什么修复最好| 胃反酸什么原因| 清关是什么意思| 梦见河水是什么意思| 人参泡酒有什么功效| 静若幽兰什么意思| 什么叫两会| 为什么会有流星雨| 底细是什么意思| 辣子鸡属于什么菜系| 大卡是什么意思| 一月九号是什么星座| 下午六点多是什么时辰| 出血热是什么病| 干疮是什么样子的图片| 一单一双眼皮叫什么眼| 汗血宝马什么意思| 威士忌什么味道| 腰痛应该挂什么科| 烛光晚餐是什么意思| 衣带渐宽终不悔是什么意思| 198什么意思| 乳房疼挂什么科室| 灼热感是什么样的感觉| 为什么喝酒| 境遇是什么意思| hold on什么意思| 性生活什么意思| 十二指肠溃疡吃什么药| hpv73阳性是什么意思| 熬夜吃什么水果好| 三月初六是什么星座| 投资公司是做什么的| 检查糖尿病挂什么科| 玄府指的是什么| 左眼皮跳是什么预兆呢| 本科是什么学历| 樵是什么意思| 绿色加红色是什么颜色| 阑尾炎应该挂什么科| 左眼跳是什么原因| 梦见死尸什么预兆| 阳痿早泄吃什么药最好| 尿肌酐是什么| 大胯疼是什么原因引起| 胆囊是什么| 女性更年期潮热出汗吃什么药| 憔悴是什么意思| 天罗地网是什么生肖| 波字五行属什么| 仰角是什么意思| 前面有个豹子是什么车| 羊肠小道什么意思| 大生化能查出什么病来| 7月20是什么星座| 抱恙是什么意思| 女人吃什么养颜又美白| 元五行属什么| 尼泊尔是什么人种| darling什么意思| 生殖科检查什么| 16是什么意思| 澳大利亚有什么动物| 送老师什么礼物最好| 氯雷他定片主治什么| 厅堂是什么意思| 做彩超为什么要憋尿| 四不念什么| 什么是腱鞘炎| 腊八粥是什么节日| 为什么容易被蚊子咬| 12月25日是什么日子| 多发淋巴结是什么意思| 手电筒的金属外壳相当于电路中的什么| 狐狸吊坠有什么寓意| psa检查是什么意思| 边界欠清是什么意思| ppd是什么| 大芒果是什么品种| 身先士卒是什么意思| 中午十一点是什么时辰| 中期唐氏筛查查什么| 女朋友的弟弟叫什么| 吃什么减肥| 63年属什么| 导是什么意思| 城市户口和农村户口有什么区别| 谷丙转氨酶偏高说明什么原因| 11月7号是什么星座| 大腿根内侧发黑是什么原因| 梦见白猫是什么预兆| 什么是卧蚕| 狐臭是什么味| 梦见捡到很多钱是什么意思| 6月17号什么星座| 血肿不治疗有什么后果| 痛风是什么地方痛| 突然长胖是什么原因造成的| 什么是敏感肌| 虚岁27岁属什么生肖| hcy是什么检查项目| 危日是什么意思| 指甲月牙白代表什么| 百度

学习STM32单片机,绕不开的串口

嵌入式系统 时间:2025-08-07来源:硬件笔记本
百度 比赛期间,还将举办一系列新闻发布会、国际泳联技术会议等活动。

刚开始学单片机的你,是不是会因用程序把LED点亮而感到高兴,会因用程序把数码管点亮而感到高兴。这是好事,这也是想继续学习下去的动力。


但是数据相关的实验是学习单片机和STM32的一道坎,此时就需要用好本文要说的串口这个调试工具。


串口通信介绍


关于串口通信的介绍,也可以点击阅读之前发的一篇文章:STM32串口通信基本原理。


串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式......这种太过理论了,看似懂了,但又不懂。还是用我笔者自己的话来说吧。


串口通信就是可以把程序在单片机或者STM32芯片中运行的结果发送到电脑的一种通信方式。



如何使用串口通讯,你需要知道的几个重要的知识点:


其中,后3项一般不需要改变。


学会串口通信能做什么


学过C语言的人都知道,程序开发需要不断调试不断验证。很多的语言编程软件都有很完整的程序调试功能。使用起来很方便。而我们的开发虽然也是用C语言,但我们的程序最终运行的环境不是在我们的开平台而是在真正的硬件系统中运行。这时想要查看程序的运行过程或者结果就不像编程软件那么方便了。


想要解决这个问题,我们这时就可以借助串口通信来把我们需要知道的结果又或者是程序运行的关键步骤发送到电脑上,我们就知道程序在硬件系统中运行是否出现问题。51单片机可以用串口来调试,STM32可以用串口来调试,Linux开发板也是使用串口来调试。


当你学会串口通信时,你可以开始玩WIFI模块、GSM模块、蓝牙模块、GPS模块、以及各种使用串口通信的传感器等等。有能力你还可以编写上位机软件通过串口通信来控制设备。


串口通信需要什么


如果你只有STM32核心板,那么你还需要一个串口转USB模块和一个串口数据接收软件还有几根杜邦线就可以了。

如果你的是比较完整的一款开发板的话,一般都已经带有串口转USB模块,这样使用起来就更简单了。聪明的你是不是发现还缺少了点什么,对。没错因为还缺少了最重要的程序。想要使用串口通信当然还需要写串口通信的程序。


下文就教你如何去用,而不是写。


串口实验


关于串口的实验,之前录过一个基于HAL库来实现的视频,可以点击查看:STM32打印数据到串口助手。


而下文中的实验基于标准库实现的,与HAL相比思路是一样的。


在做一个实验时,最好把这个实验分割成几个关键的步骤,这样做的好处就是可以清晰的知道自己需要做什么,以及做完了哪些。还有哪些还没做。


下面把串口实验分成几个关键的步骤:


1)串口通信使用到的GPIO引脚配置


STM32F103系列的芯片一般都有三个串口以上,用来调试使用的串口一般都是使用USART1。其他的串口配置都是一样的。


下面这段就是串口配置的程序:

GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //使能USART1,GPIOA时钟//USART1_TX GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化GPIOA.9//USART1_RX GPIOA.10初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  //PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化GPIOA.10


串口使用的的GPIO口是PA9和PA10,所以只需配置这两个IO口的输入输出模式就可以了。


2)串口主要参数设置(直接看程序)

USART_InitTypeDef USART_InitStructure;//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//数据格式,8位USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式USART_Init(USART1, &USART_InitStructure); 
//初始化串口1USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断


串口参数配置无法就是配置串口的波特率、数据格式、停止位、奇偶校验、硬件流、收发模式。除了波特率需要改变其他的参数都不需要管。直接复制拿来用。


3)串口中断配置

串口如果使用中断接收,那么就需要配置串口的中断参数,配置项无法就是配置那个的中断源和中断的优先级。

NVIC_InitTypeDef NVIC_InitStructure;//Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;  //抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  //IRQ通道使能NVIC_Init(&NVIC_InitStructure);   //根据指定的参数初始化VIC寄存器


4)串口使能


就是你需要什么时候开始使用串口功能,就是一句原有的函数。

USART_Cmd(USART1, ENABLE);  //使能串口1


5)编写串口中断处理函数

使用库函数开发,所有的中断函数都是已经存在的,只是中断函数里面没有处理任何事情而已。中断函数如下:


完整的串口中断函数:

void USART1_IRQHandler(void){int Res=0;  //定义一个变量用来接收串口数据集if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
  {
  Res =USART_ReceiveData(USART1);  //读取接收到的数据
  USART_SendData(USART1,Res );     //把接收到的数据通过串口1发送出去
  }
}


串口数据的接收和发送的函数都是库函数提供的,想用时只需找到它直接拿来用就可以了。


6)实验现象

把程序编译烧写到STM32然后用串口转USB模块连接到电脑,在串口调试工具设置好波特率,打开串口。正常的话,那发送什么到STM32单片机,串口工具上就会收到什么。


总结

以上就完成了一个最简单的串口实验。

本文章主要是说明串口的重要性,用来调试程序很方便。


关键词: 串口 单片

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
尿喝起来是什么味道 肌肉拉伤吃什么药 hcy是什么意思 鹌鹑是什么 挪揄是什么意思
月经不调吃什么药调理 什么人不能吃绿豆 吃醋对身体有什么好处 多晒太阳有什么好处 通灵是什么意思
尿液可以检查出什么 疱疹是什么原因引起 毛孔粗大是什么原因引起的 一什么笑声 tvb是什么意思
经常困想睡觉是什么问题 红绳有什么寓意 多核巨细胞是什么意思 花开半夏什么意思 舌吻是什么
腋毛上有白色附着物是什么hcv8jop5ns5r.cn 吃什么养颜美容抗衰老hcv7jop6ns1r.cn 搁浅了是什么意思hcv8jop8ns3r.cn 女生过生日送什么礼物好hcv9jop2ns9r.cn 香其酱是什么酱hcv9jop4ns9r.cn
思源名字的寓意是什么1949doufunao.com 吃什么长胎不长肉xscnpatent.com 什么是麻疹hcv8jop9ns9r.cn 关羽使用的武器是什么hcv9jop7ns2r.cn 吕洞宾属什么生肖hcv9jop3ns1r.cn
声带息肉有什么危害hcv8jop9ns4r.cn 玉子是什么baiqunet.com 支原体和衣原体有什么区别hcv9jop3ns0r.cn 崎岖是什么意思bfb118.com 小孩脚后跟疼是什么原因hcv9jop0ns1r.cn
rds医学上什么意思hlguo.com 女人为什么会来月经hcv7jop9ns6r.cn 手心红是什么原因hcv8jop5ns2r.cn 蓝得什么gysmod.com 吃什么能让奶水变多jiuxinfghf.com
百度