2023年STM学习笔记USART串口的使用.docx
《2023年STM学习笔记USART串口的使用.docx》由会员分享,可在线阅读,更多相关《2023年STM学习笔记USART串口的使用.docx(12页珍藏版)》请在咨信网上搜索。
1、1.串口的基本概念在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据互换。USART运用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多解决器通信。还可以使用DMA方式,实现高速数据通信。USART通过3个引脚与其他设备连接在一起,任何USART双向通信至少需要2个引脚:接受数据输入(RX)和发送数据输出(TX)。RX:接受数
2、据串行输入。通过过采样技术来区别数据和噪音,从而恢复数据。TX:发送数据输出。当发送器被严禁时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处处在高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接受。2.串口的如何工作的一般有两种方式:查询和中断。(1)查询:串口程序不断地循环查询,看看当前有没有数据要它传送。假如有,就帮助传送(可以从PC到STM32板子,也可以从STM32板子到PC)。(2)中断:平时串口只要打开中断即可。假如发现有一个中断来,则意味着要它帮助传输数据它就立即进行数据的传送。同样,可以从PC到STM3板子,也可以从STM32板子
3、到PC。3.串口的硬件连接我用的奋斗STM32 V3开发板拥有二路RS-232接口,CPU的PA9-US1-TX(P68)、PA10-US1-RX(P69)、PA9-US2-TX(P25)、PA10-US2-RX(P26)通过MAX3232实现两路RS-232接口,分别连接在XS5和XS17接口上。USART1在系统存储区启动模式下,将通过该口通过PC对板上的CPU进行ISP,该口也可作为普通串口功能使用,JP3,JP4的短路冒拔去,将断开第二路的RS232通信,仅作为TTL通信通道。4.编程实例我们要对串口进行操作,一方面要将STM32的串口和CPU进行连接。在Windows操作系统中,有一
4、个自带的系统软件叫“超级终端”。VISTA以上的操作系统去掉了这个软件,但是可以从XP的系统中,复制“hypertrm.dll”和“hypertrm.exe”到“windows/system32”文献夹下,然后双击运营hypertrm.exe,就可以看见超级终端的运营界面了。运营超级终端以后,会弹出“连接描述”,输入名称和选择图标,这个地方随便写个什么名称都可以。然后弹出“连接到”设立,在“连接时使用”选择你自己PC和STM32连接的COMx,假如不知道是哪个COM口的话,可以在PC的设备管理器中找到。在选择好COM口之后,会弹出一个“属性”对话框,在“位/秒”选择和你STM32中设立的波特率
5、一致就好,数据位也是按照STM32的设立来选择,奇偶校验选择无,停止位选择1,数据流控制选择无。注意,以上的选项都必须和STM32中的串口设立相匹配,要不然也许会出现一些未知错误。配置好超级终端之后,我们便可以开始对STM32进行编程了。编程一般按照如下环节进行:(1)RCC配置;(2)GPIO配置;(3)USART配置;(4)NVIC配置;(5)发送/接受数据。在RCC配置中,我们除了常规的时钟设立以外,要记得打开USART相相应的IO口时钟,USART时钟,尚有管脚功能复用时钟。在GPIO配置中,将发送端的管脚配置为复用推挽输出,将接受端的管脚配置为浮空输入。在USART的配置中,通过US
6、ART_InitTypeDef结构体对USART进行初始化操作,按照自己所需的功能配置好就可以了。注意,在超级终端的设立中,需要和这个里面的配置相相应。由于我是采用中断接受数据的方式,所以记得在USART的配置中药打开串口的中断,同时最后还要打开串口。在NVIC的配置中,重要是USART1_IRQChannel的配置,和以前的笔记中讲述的中断配置类似,不会配置的可以参考以前的笔记。所有配置好之后就可以开始发送/接受数据了。发送数据用USART_SendData()函数,接受数据用USART_ReceiveData()函数。具体的函数功能可以参考固件库的参考文献。根据USART的配置,在发送和接
7、受时,都是采用的8bits一帧来进行的,因此,在发送的时候,先开辟一个缓存区,将需要发送的数据送入缓存区,然后再将缓存区中的数据发送出去,在接受的时候,同样也是先接受到缓存区中,然后再进行相应的操作。注旨在对数据进行发送和接受的时候,要检查USART的状态,只有等到数据发送或接受完毕之后才干进行下一帧数据的发送或接受。采用USART_GetFlagStatus()函数。同时还要注意的是,在发送数据的最开始,需要清除一下USART的标志位,否则,第1位数据会丢失。由于在硬件复位之后,USART的状态位TC是置位的。当包具有数据的一帧发送完毕之后,由硬件将该位置位。只要当USART的状态位TC是置
8、位的时候,就可以进行数据的发送。然后TC位的置零则是通过软件序列来清除的,具体的环节是“先读USART_SR,然后写入USART_DR”,只有这样才可以清除标志位TC,但是在发送第一帧数据的时候,并没有进行读USART_SR的操作,而是直接进行写操作,因此TC标志位并没有清空,那么,当发送第一帧数据,然后用USART_GetFlagStatus()检测状态时返回的是已经发送完毕(由于TC位是置1的),所以程序会立即发送下一帧数据,那么这样,第一帧数据就被第二帧数据给覆盖了,所以看不到第一帧数据的发送。按照上面的方法编程后,我们便可以在超级终端上查看串口通信的具体状态了。我的这个例程,在硬件复位
9、以后,可以立即在超级终端上看见“Welcome to my STM32! Please press any key!”字样,然后假如在超级终端中通过PC机键盘按下相应的键,则这个键会发送到STM32中,并且立即返回到PC机的超级终端上,因此可以立即从超级终端的页面中看到按下的相应的键。5.程序源代码#include stm32f10x_lib.hFlagStatus RX_status;void RCC_cfg();void GPIO_cfg();void USART_cfg();void NVIC_cfg();int main()int i;unsigned char TxBuf1 = We
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 STM 学习 笔记 USART 串口 使用
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。