硬汉嵌入式论坛

 找回密码
 立即注册
查看: 9660|回复: 3
收起左侧

[有问必答] 用F407的USART1设置7位数据,2个停止位,偶校验向电脑发送数据不成功,求助

[复制链接]

92

主题

76

回帖

92

积分

初级会员

积分
92
发表于 2015-6-9 00:41:12 | 显示全部楼层 |阅读模式
如题:
用F407的USART1设置7位数据,2个停止位,偶校验向电脑发送数据不成功
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2015-6-9 00:46:02 | 显示全部楼层
实际在我们的STM32-V5开发板上面测试了下,波特率115200,串口设置如下,打印三次我们的网站:
1.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2015-6-9 00:47:38 | 显示全部楼层
文件: bsp_uart.rar (2 KB, 下载次数: 71)
串口完整配置代码如下,使用USART1:
  1. /*
  2. *********************************************************************************************************
  3. *                                      
  4. *    模块名称 : 串口驱动模块   
  5. *    文件名称 : bsp_uart.c
  6. *    版    本 : V1.0
  7. *    说    明 : 实现printf和scanf函数重定向到串口1,即支持printf信息到USART1
  8. *                实现重定向,只需要添加2个函数:
  9. *                int fputc(int ch, FILE *f);
  10. *                int fgetc(FILE *f);
  11. *                对于KEIL MDK编译器,编译选项中需要在MicorLib前面打钩,否则不会有数据打印到USART1。
  12. *    修改记录 :
  13. *        版本号  日期       作者    说明
  14. *        v1.0    2013-11-24 armfly  首发
  15. *
  16. *    Copyright (C), 2013-2014, 安富莱电子 www.armfly.com
  17. *
  18. *********************************************************************************************************
  19. */
  20. #include "stm32f4xx.h"
  21. /*
  22. *********************************************************************************************************
  23. *    函 数 名: bsp_InitUart
  24. *    功能说明: 初始化CPU的USART1串口硬件设备。未启用中断。
  25. *    形    参:无
  26. *    返 回 值: 无
  27. *********************************************************************************************************
  28. */
  29. void bsp_InitUart(void)
  30. {
  31.     GPIO_InitTypeDef GPIO_InitStructure;
  32.     USART_InitTypeDef USART_InitStructure;
  33.    
  34.     /* 串口1 TX = PA9   RX = PA10 */
  35.     /* 第1步: 配置GPIO */
  36.     /* 打开 GPIO 时钟 */
  37.     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  38.     /* 打开 UART 时钟 */
  39.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  40.     /* 将 PA9 映射为 USART1_TX */
  41.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
  42.     /* 将 PA10 映射为 USART1_RX */
  43.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);
  44.     /* 配置 USART Tx 为复用功能 */
  45.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;    /* 输出类型为推挽 */
  46.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;    /* 内部上拉电阻使能 */
  47.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;    /* 复用模式 */
  48.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  49.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  50.     GPIO_Init(GPIOA, &GPIO_InitStructure);
  51.     /* 配置 USART Rx 为复用功能 */
  52.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  53.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  54.     GPIO_Init(GPIOA, &GPIO_InitStructure);
  55.     /* 第2步: 配置串口硬件参数 */
  56.     USART_InitStructure.USART_BaudRate = 115200;    /* 波特率 */
  57.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  58.     USART_InitStructure.USART_StopBits =  USART_StopBits_2;
  59.     USART_InitStructure.USART_Parity = USART_Parity_Even ;
  60.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  61.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  62.     USART_Init(USART1, &USART_InitStructure);
  63.     USART_Cmd(USART1, ENABLE);        /* 使能串口 */
  64.     /* CPU的小缺陷:串口配置好,如果直接Send,则第1个字节发送不出去
  65.         如下语句解决第1个字节无法正确发送出去的问题 */
  66.     USART_ClearFlag(USART1, USART_FLAG_TC);     /* 清发送完成标志,Transmission Complete flag */   
  67. }
复制代码
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
发表于 2021-3-22 15:42:40 | 显示全部楼层
eric2013 发表于 2015-6-9 00:47
文件:
串口完整配置代码如下,使用USART1:

老大,我看串口驱动里面,有很多开关中断DISABLE_INT、ENABLE_INT
是不是可以改成__HAL_UART_DISABLE_IT(huart, UART_IT_RXNE)和__HAL_UART_ENABLE_IT(huart, UART_IT_RXNE);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-28 22:54 , Processed in 0.421039 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表