IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32F407使用1382400波特率收发数据 -> 正文阅读

[嵌入式]stm32F407使用1382400波特率收发数据

? ? ? ? 在一个新项目中要使用串口发送大量数据,之前使用过的串口最高波特率只用到了115200,最开始想用115200*16=1843200波特率的,但收发数据的时候测试有部分字节会出错,最后改用1382400波特率测试收发数据都正常。

主函数测试程序:

u32 SysTime; ? ? ? ? //系统时钟上 每毫秒加1

u8 ?senddata[256];? //发送数据BUF
u32 ?TestTime;
int main(void)
{
?? ?u16 i ;
?? ?SysTickConfiguration();?
?? ?
?? ? DriveGpioInit();
?? ? DriveGpioInputDefault();
?? ? DriveGpioOutputDefault();
?? ?? DriveUsarUnifyInit(kUART_COM6_UPPER,1382400,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No); ? //初始化串口 ?1382400
?? ?CreatSystemManageTask();
?? ?for(i = 0; i < 256; i++)
?? ?{
?? ??? ??? ?senddata[i] = i;?? ? ?//给发送BUF赋值
?? ?}
? while(1)
?? ?{
?? ??? ?TaskPoll();
?? ??? ?TaskTimerUpdate(SysTime);
?? ??? ?if(SysTime >= TestTime)
?? ??? ?{
?? ??? ??? ?TestTime = SysTime + 1000; ? ? ? ? ? ?//每秒钟发送一包串口数剧
?? ??? ??? ?DriveUsartComUnifySend(kUART_COM6_UPPER,senddata,256); ? ? ? ? ? ? ?//发送数据
?? ??? ?}
?? ??? ?DriveUsartUnifyDataSendLoop();
?? ?}
}

串口初始化函数:

? ? ? ?GPIO_InitTypeDef GPIO_InitStructure;
?? ??? ?USART_InitTypeDef USART_InitStructure;
?? ??? ?//?? ?NVIC_InitTypeDef NVIC_InitStructure;

?? ??? ?RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE); ?? ??? ??? ?//使能GPIOC时钟
?? ??? ?RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6,ENABLE);?? ??? ??? ?//使能USART6时钟

?? ??? ?//串口6对应引脚复用映射
?? ??? ?GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_USART6); ?? ??? ?//GPIOC6复用为USART6
?? ??? ?GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_USART6); ?? ??? ?//GPIOC7复用为USART6

?? ??? ?GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; ?? ??? ??? ?//GPIOC6与GPIOC7
?? ??? ?GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;?? ??? ??? ??? ??? ?//复用功能
?? ??? ?GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;?? ??? ??? ??? ?//速度50MHz
?? ??? ?GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; ?? ??? ??? ??? ??? ?//推挽复用输出
?? ??? ?GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; ?? ??? ??? ??? ??? ?//上拉
?? ??? ?GPIO_Init(GPIOC,&GPIO_InitStructure); ?? ??? ??? ??? ??? ??? ??? ?//初始化PC6,PC7

?? ??? ?/* ?配置串口硬件参数 */
?? ??? ?USART_InitStructure.USART_BaudRate = baud;?? ??? ?//波特率设置
?? ??? ?USART_InitStructure.USART_WordLength = len;?? ??? ?//字长为8位数据格式
?? ??? ?USART_InitStructure.USART_StopBits = stopBit;?? ??? ??? ?//一个停止位
?? ??? ?USART_InitStructure.USART_Parity = checkType;?? ??? ??? ??? ?//无奇偶校验位
?? ??? ?USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;?? ?//无硬件数据流控制
?? ??? ?USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;?? ?//收发模式
?? ??? ?USART_Init(USART6, &USART_InitStructure); ?? ??? ??? ??? ??? ??? ?//初始化串口6
?? ??? ?//用于判断是否接收完一包数据.
?? ??? ?USART_ITConfig(USART6, USART_IT_IDLE, ENABLE);?? ??? ??? ??? ??? ?// 使能串口空闲中断

?? ??? ?USART_Cmd(USART6, ENABLE); ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?// 串口使能
?? ???

上位串口调试助手收到MCU的数据:

?

?

MCU收到串口调试助手的数据:

?

?

?

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:37:35  更:2021-09-23 11:37:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:52:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码