资源简介
实验用 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个文件信息
- 上一篇:小米系列QCN
- 下一篇:OLED程序例程K60_4WIRE_SPI例程
相关资源
- 遥控小车源码
- stm32f103c8t6 Keil led工程
- MAX31865模块STM32驱动程序
- 总结——调试STM32F103ZET6外围传感器
- STM32(TCP转MQTT).rar
- AD7705 源程序
- STM32F103C8T6读取DS18B20串口显示程序
- STM32+LAN9252 EtherCAT DS402
- stm32f103封装库283282
- STM32f103zet6脉冲周期检测间接的频率
- 2018年电赛G题f103附带程序
- 基于STM32F103ZE的STH3x温湿度传感器代码
- STM32f103C8t6型单片机用于超声波测距
- DHT11温湿度传感器项目代码.rar
- STM32 ADC与DMA多通道采集加均值滤波.
- ldc1314测试程序stm32f1
- mpr121.zip
- 倒立摆调试,使用步进电机,完全成
- STM32F1 直线倒立摆程序代码
- STM32F103+SIM800A双向通信
- STM32F103采用DMA实现USART2接收和发送
- STM32F103采用DMA实现USART3接收和发送
- stm32f103和时钟芯片ds1302
- stm32f103驱动北微传感器
- 声光感应控制LED灯
- RikiRobot Stm32驱动板开发使用说明
- STM32L476资料
- STM32F103 模糊自整定位置式PID控制电机
- 基于stm32数字光强计GY-30光强采集ole
- 基于STM32的模拟鼠标移动
评论
共有 条评论