资源简介

实验用 mini 板的三个串口来演示多机通信,实验循循渐进地来演示串口的多机通信,力求让读者能够更好的了解什么是多机通信。当然这也是本人自己的学习多机通信的历程笔记。涉及到中断、 DMA 等内容,这里也会做些简单介绍。

资源截图

代码片段和文件信息

#include “Usart.h“
#include “stdarg.h“

/*
*函数名:USART1_Config
*描  述:配置USART1_GPIO工作模式,115200-N-1
*输  入:null
*输  出:null
*/

void USART1_Config(void){
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOAENABLE);//使能串口1,GPIOA时钟
//USART_GPIO config
//Tx PA.9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复合推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA&GPIO_InitStructure);
//Rx PA.10
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOA&GPIO_InitStructure);
//USART_mode config
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
USART_InitStructure.USART_Parity = USART_Parity_No;//不设置奇偶校验
USART_InitStructure.USART_StopBits = USART_StopBits_1;//1Bit停止位
USART_InitStructure.USART_WordLength = USART_WordLength_9b;//9Bit
USART_Init(USART1&USART_InitStructure);
USART_Cmd(USART1ENABLE);

  USART_SetAddress(USART10X00);//设置串口1为主机,地址为0X00
}
/*
*函数名:USART2_Config
*描  述:配置USART2_GPIO工作模式,115200-N-1
*输  入:null
*输  出:null
*/
void USART2_Config(void){
GPIO_InitTypeDef  GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
  
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2ENABLE);//使能串口2
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOAENABLE);//使能GPIOA时钟
  //USART_GPIO config
  //Tx PA.2
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA&GPIO_InitStructure);
  //Rx PA.3
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA&GPIO_InitStructure);
  //USART_mode config
  USART_InitStructure.USART_BaudRate = 115200;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_WordLength = USART_WordLength_9b;
  USART_Init(USART2&USART_InitStructure);
  USART_Cmd(USART2ENABLE);
  USART_SetAddress(USART20X01);//串口2为1号从机,地址为0x01
  USART_ReceiverWakeUpCmd(USART2ENABLE);//开启静默模式
  USART_WakeUpConfig(USART2USART_WakeUp_AddressMark);//地址唤醒模式
}
#if 0 //暂时不需要的
/*
*functions:fputc
*describe:从定向c库函数printf到USART1
*input:null
*output:null
*/
int fputc(int chFILE *f)
{
USART_SendData(USART1(unsigned char)ch);
while(USART_GetFlagStatus(USART1USART_FLAG_TC)!= SET);
return ch;
}

/*
 * 函数名:itoa
 * 描述  :将整形数据转换成字符串
 * 输入  :-radix =10 表示10进制,其他结果为0
 *         -value 要转换的整形数
 *         -buf 转换后的字符串
 *     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-20 17:38  STM32_USART 多机通信学习笔记\
     文件      533788  2018-03-20 17:20  STM32_USART 多机通信学习笔记\STM32_USART 多机通信学习笔记.pdf
     目录           0  2018-03-20 17:37  STM32_USART 多机通信学习笔记\V0.1\
     目录           0  2018-03-20 17:37  STM32_USART 多机通信学习笔记\V0.1\BSP\
     文件         939  2013-03-14 21:10  STM32_USART 多机通信学习笔记\V0.1\BSP\LED.C
     文件         425  2013-03-14 21:18  STM32_USART 多机通信学习笔记\V0.1\BSP\LED.h
     文件        5764  2013-08-02 16:57  STM32_USART 多机通信学习笔记\V0.1\BSP\Usart.c
     文件         247  2013-08-02 15:57  STM32_USART 多机通信学习笔记\V0.1\BSP\Usart.h
     目录           0  2018-03-20 17:37  STM32_USART 多机通信学习笔记\V0.1\CMIS\
     文件       17273  2010-06-07 10:25  STM32_USART 多机通信学习笔记\V0.1\CMIS\core_cm3.c
     文件       85714  2011-02-09 14:59  STM32_USART 多机通信学习笔记\V0.1\CMIS\core_cm3.h
     目录           0  2018-03-20 17:37  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\
     文件       15766  2011-03-10 10:52  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_cl.s
     文件       15503  2011-03-10 10:52  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_hd.s
     文件       15692  2011-03-10 10:52  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_hd_vl.s
     文件       12376  2011-03-10 10:52  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_ld.s
     文件       13656  2011-03-10 10:52  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_ld_vl.s
     文件       12765  2011-03-10 10:52  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_md.s
     文件       14073  2011-03-10 10:51  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_md_vl.s
     文件       15955  2011-03-10 10:51  STM32_USART 多机通信学习笔记\V0.1\CMIS\startup\startup_stm32f10x_xl.s
     文件      633941  2011-03-10 10:51  STM32_USART 多机通信学习笔记\V0.1\CMIS\stm32f10x.h
     文件       36557  2011-03-10 10:51  STM32_USART 多机通信学习笔记\V0.1\CMIS\system_stm32f10x.c
     文件        2085  2011-03-10 10:51  STM32_USART 多机通信学习笔记\V0.1\CMIS\system_stm32f10x.h
     目录           0  2018-03-20 17:37  STM32_USART 多机通信学习笔记\V0.1\FWlib\
     目录           0  2018-03-20 17:37  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\
     文件        8982  2011-03-10 10:47  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\misc.h
     文件       21690  2011-03-10 10:47  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\stm32f10x_adc.h
     文件        7555  2011-03-10 10:47  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\stm32f10x_bkp.h
     文件       27559  2011-03-10 10:47  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\stm32f10x_can.h
     文件        6573  2011-03-10 10:47  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\stm32f10x_cec.h
     文件        2162  2011-03-10 10:47  STM32_USART 多机通信学习笔记\V0.1\FWlib\inc\stm32f10x_crc.h
............此处省略480个文件信息

评论

共有 条评论