完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
stm32作为现在嵌入式物联网单片机行业中经常要用多的威廉希尔官方网站
,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm32的视频资料便于学习参考。
什么是串口 UART : Universal Asynchronous Receiver/Transmitter 通用异步收发器 USART : Universal Synchronous Asynchronous Receiver/Transmitter 通用同步/异步收发器 一种是常用也是最简单的串行数据传输协议。数据线只需要两根就可以实现全双工。 Tx: 发送数据线 Rx: 接收数据线 A B TX -----------> Rx Rx <------------Tx 全双工: 两个设备可以同时发送和接收 串行数据: 发送只一根线,一次只能发送一bit. 一bit接着一bit发送和接收。 模块通信: 上位机 下位机 通信一般需要两个设备,我们把这两个设备,人为叫做上位机, 下位机。 上位机: 把处理性能强的机子,上位机。数据大部分处理都在上位机完成。 下位机: 把数据采集的终端,处理性能单一的机子,下位机。 串口只有一根发送数据线,假如 A要发送一个字符数据 10101010 给B A -------- --------- -------- ------- … 高电平周期是多长?即使是不发送数据Tx线上也有一个电平状态,接收方 它怎么知道你是在发送呢?.. UART数据如何传输? UART protocol 串口协议。 串口发送和接收数据是以帧为单位. Frame 1帧(Frame)= 1 start bit(起始位) + 5-9bits数据位 + 0/1bit 校验位 + stop bits(0.5, 1,1,5,2) 起始位: 一个周期的低电平 数据位: 5-9bits数据位,具体是多少bits,需要双方协商。并且传送是先传送LSB(最低位) … MSB 校验位: 0 bit :没有校验位 1 bit :校验位. “赖子” X D0 D1 D2 … Dn X 奇校验:要保证传输的1为奇数 D0 D1 D2 … Dn X 要保证这一串数据中1的个数为奇数 1 0 1 0 1 0 1 0 X(1) 1 0 1 0 1 0 1 1 X(0) 偶校验:要保存传输的1为偶数 停止位: 高电平 0.5 个停止位。 半个周期的高电平 1 个停止位 1.5 个停止位 2 个停止位 Baudrate(波特率): 传输速率。 决定 时间周期。 115200 bps: bits per second 物理层标准 the physical layer standards TTL level UART : TTL电平串口 RS-232: RS-422: RS-485: TTL level UART: 逻辑低电平(0) 0V 逻辑高电平(1) 5V/3.3V RS-232: 适合较长距离传输 逻辑低电平(0) +3v~+15V 逻辑高电平(1) -3v~-15v TTL UART RS-232 RS-422 RS-485 电平 1 3.3V/5V 1 -5V ~ -15V +/- 2v +/- 1.5v 0 0V 0 5V ~ +15V 信号 单端信号 单端信号 差分信号 差分信号 传输长度 < 2m <15m <1200m <1200m 不同标准的串口,引脚也不一样。TX/Rx是一定存在的。 TTL RX TX GND VCC STM32F4xx 串口控制器 TX RX 硬件流控: RTS: Request To Send 请求发送信号 终端告诉对方可以向我传输数据啦。 CTS: Clear To Send 清除发送信号 对方告知终端,我要向你发送数据啦 RTS -------> CTS(对方) CTS <------- RTS(对方) 标志位: TXE: Transmit data Register Empty 发送数据寄存器为空。 不代表上一次数据已经发送完成啦,因为数据有可能还在 shifter里面 但是此时您可以向TDR写数据啦。 TC : Transmit Complete 发送完成。 发送移位寄存器中的数据已经发送到Tx引脚上面去了。 RXNE: Read Data register Not Empty 接收数据寄存器不为空。意思是你可以读数据啦。 STM32F4xx串口代码流程 (1) GPIO口配置 串口的TX/RX 引脚是由GPIO口来复用的。 a. 使能GPIO分组的时钟 RCC_AHB1PeriphClockCmd b. 配置GPIO口的功能 GPIO_Init c. 选择具体的复用功能 GPIO_PinAFConfig (2) usart配置 a. 使能usart时钟 b. USART_Init USART_Init(USART_TypeDef * USARTx, USART_InitTypeDef * USART_InitStruct); typedef struct { uint32_t USART_BaudRate; // 波特率 uint16_t USART_WordLength; //传输字长 ,如下两个任选其一: USART_WordLength_8b USART_WordLength_9b 在STM32中:传输字长=数据位数+检验位数 uint16_t USART_StopBits; //停止位数,如下 : USART_StopBits_1 1bit停止位 USART_StopBits_1_5 1.5bit停止位 USART_StopBits_2 2 bits停止位 USART_StopBits_0_5 0.5bit停止位 uint16_t USART_Parity; //校验方式,如下: USART_Parity_No 无校验 USART_Parity_Odd 奇校验 USART_Parity_Even 偶校验 uint16_t USART_Mode; //串口模式, 如下:可以组合 USART_Mode_Tx 发送模式 USART_Mode_Rx 接收模式 USART_Mode_Tx | USART_Mode_Rx 发送和接收模式 uint16_t USART_HardwareFlowControl; //硬件流控 USART_HardwareFlowControl_None 无硬件流控 USART_HardwareFlowControl_RTS RTS 请求发送。你可以接收对方的数据。 USART_HardwareFlowControl_CTS CTS 清除发送,你可以发数据给对方。 USART_HardwareFlowControl_RTS_CTS RTS_CTS 发送和接收都用流控 } USART_InitTypeDef; (3) 中断的配置 USART_ITConfig <- 配置串品的中断 在STM32中一个USART只对应一个中断通道,但是引起串口中断的 事件有很多,比如: TXE -> 发送寄存器为空,可以引起串口中断 TC -> 发送完成,可以引起串口中断 RXNE -> 接收寄存器不为空,可以引起串口中断 …… 只不过,这些事件需要"中断控制位使能" USART_ITConfig(USART1, USART_IT_RXNE,ENABLE); USART_ITConfig就是用来把一个串口的XX事件,配置成是否引起串口中断的 在串口中断函数里面,就需要判断是哪个串口事件,引起了中断!!! NVIC_Init() (4) 使能串口 USART_Cmd 接收(中断函数) USART1_IRQHanlder() { if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { //有数据可读啦 data = USART_ReceiveData(USART1); //读取接收到的数据 } //清除USART1的中断标志 USART_GetITStatus } USART_GetITStatus用来获取串口的xx事件标志位 发送数据 USART_SendData(USART1, 0x55); while (USART_GetFlagStatus(USRAT1, USART_FLAG_TXE) == RESET); //等待发送结束 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1850浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
615浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
506浏览 3评论
510浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
491浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 22:58 , Processed in 0.795785 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号