1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
通用异步收发器(UART)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收,最多2根线即可通信。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。从手册可以看到我们用的stm32f411这款芯片共有三个串口分别是串口一,串口二和串口六。通过下图,我们可以看出,这3个串口可以实现的功能可是相当的多。它们有硬件流控、DMA收发、多机通信、同步模式、单线单工模式、接收超时中断、自动波特率检测等众多功能。 这三个串口功能太多了,别的功能也不多用,接下来就来讲讲如何实现最简单的与电脑的通信。 STM32F411 UART结构框图 先看一下原理图可以看到串口2的引脚已经接出来了,那我们就用串口2开始写程序吧. 首先现将我们的工程模板拷贝出来,重命名为“串口通信”。 编程步骤: 1. 配置系统时钟;(前面已经提到就不再多说) 2. 初始化串口2 // 引脚: PA2:USART2_TX ; PA3:USART2_RX voidCOM2_Init(u32 BaudRate) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能GPIOA RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能USART2 GPIO_PinAFConfig(GPIOA,GPIO_PinSource2, GPIO_AF_USART2); GPIO_PinAFConfig(GPIOA,GPIO_PinSource3, GPIO_AF_USART2); // 引脚配置: GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType =GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF; GPIO_Init(GPIOA,&GPIO_InitStructure); //串口2配置: USART_InitStructure.USART_BaudRate =BaudRate; //波特率设置 USART_InitStructure.USART_WordLength =USART_WordLength_8b; 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(USART2,&USART_InitStructure); USART_ClearFlag(USART2, USART_FLAG_TC); USART_Cmd(USART2, ENABLE); } 3. 发送字符、字符串函数: voidSendChar(u8 tempc) { while((USART2->SR&0x0040)==0); USART2->DR=tempc; } voidSendString(u8 *tempp) { while(*tempp!=0) { SendChar(*tempp++); } } 4. 主函数: intmain(void) { COM2_Init(115200); while(1) { SendString("I love younot for who you are, but for who I am before youn"); delay_ms(500); } } 测试结果: 注意:下程序前要先将开发板背面的SB62和SB63用0欧电阻短接,我这里就直接焊锡短接了 |
|
相关推荐
|
|
忘记了上传附件
|
|
|
|
|
|
呵呵,继续进步。
|
|
|
|
|
|
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:33 , Processed in 0.684375 second(s), Total 76, Slave 58 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号