完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
串口通信简介
USART为通用同步异步接收/发送器,我们常用的是异步通信,下面也重点讲解异步通信 同步异步有什么区别呢? 具体区别可以问度娘,大致记住同步是要求时钟同步,那怎么保证时钟同步呢?撇开网络不谈,意法的解决办法是专门提供一个叫做USARTy_CK的引脚接口,也就是说如果采用同步通信这个引脚必须要和设备连上,异步通信就简单了,只需接受RX与发送TX两条线就可以了 异步通信怎样连线? 直接连接: 注意:USART只是一种通信协议根据不同电平分为TTL、RS232、RS485等等 直接连接,采用TTL电平通信,距离十分受限,最远通信距离大概2M 转RS232连接: RS232连接方式,通信协议依旧没变,实际就是将TTL电平转换成了232电平,目的自然是为了获得更远的通信距离,最远通信距离大概20M 采用RS232电平的连线接头如下: 相信大家也不陌生,生活中还是用得比较多 转RS485连接: 采用485电平连接方式,与232类似,通信距离大幅度提升,多用在工业上,最远通信距离大概1000M 对于STM32F10XXX来说USART1位于高速总线APB2上,其通信速率高达4.5兆位/秒,快于其他串口,且支持DMA操作(对于DMA后续会详说,开始坑!) (2)串口初始化也都给了备注,大致捋一下: ①定义GPIO和USART两个结构体,这是必不可少的,至于NVIC中断优先级配置如果没有用到中断就不需要 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//使能串口接收中断 也就是说不要上面这句代码就不用配置NVIC ②配置TX引脚为复用推挽输出、RX为浮空或上拉输入,至于为什么直接上图,记住就好了 ③进行协议的配置,Baudrate通过调用函数传参实现设置,8位数据位、1位停止位、不进行奇偶校验、无硬件流控制、接收发送模式,这是比较常用的,可以根据需要自行修改(这里不再详说了,因为每一点展开来都可以写成一篇文章了) ④中断优先级配置 (3)串口打印函数Usart_Printf,这个函数是自己写的,就是当前面说的printf函数已经和其他串口关联后,我们就得自己写串口打印函数了,这个函数缺点是不能够传参,也就只能像这样用用 Usart_Printf("ExclusiveTP is handsome!") 具体代码是怎样实现的,我后面会专门来详说(再一坑!) (4)串口接收中断 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//使能串口接收中断 前面要有了这句代码,串口在接收到数据后才会进入此中断,至于进入中断干什么完全由你自己书写,我给的代码例子是将串口接收到的东西再发送回去 几乎所有的中断服务函数都是这个大致的框架。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
611浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 15:22 , Processed in 0.829348 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号