当前位置:文档之家› 第二十九章战舰STM32开发板485实验

第二十九章战舰STM32开发板485实验

第二十九章战舰STM32开发板485实验
第二十九章战舰STM32开发板485实验

第二十九章485 实验

本章我们将向大家介绍如何利用STM32的串口实现485通信(半双工)。在本章中,我们将利用STM32的串口2来实现两块开发板之间的485通信,并将结果显示在TFTLCD模块上。本章分为如下几个部分:

29.1 485 简介

29.2 硬件设计

29.3 软件设计

29.4 下载验证

29.1 485 简介

485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。它的电气特性和RS-232大不一样。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。

RS485的特点包括:

1)接口电平低,不易损坏芯片。RS485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V 表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS232降低了,

不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。

2)传输速率高。10米时,RS485的数据最高传输速率可达35Mbps,在1200m时,传输速度可达100Kbps。

3)抗干扰能力强。RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。

4)传输距离远,支持节点多。RS485总线最长可以传输1200m以上(速率≤100Kbps)一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

RS485推荐使用在点对点网络中,线型,总线型,不能是星型,环型网络。理想情况下RS485需要2个匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般为120Ω)。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的电压差。没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,导致数据传输出错。485推荐的连接方式如图29.1.2所示:

图29.1.2 RS485连接

在上面的连接中,如果需要添加匹配电阻,我们一般在总线的起止端加入,也就是主机和设备4上面各加一个120Ω的匹配电阻。

由于RS485具有传输距离远、传输速度快、支持节点多和抗干扰能力更强等特点,所以RS485有很广泛的应用。

战舰STM32开发板采用SP3485作为收发器,该芯片支持3.3V供电,最大传输速度可达10Mbps,支持多达32个节点,并且有输出短路保护。该芯片的框图如图29.1.2所示:

图29.1.2 SP3485框图

图中A、B总线接口,用于连接485总线。RO是接收输出端,DI是发送数据收入端,RE 是接收使能信号(低电平有效),DE是发送使能信号(高电平有效)。

本章,我们通过该芯片连接STM32的串口2,实现两个开发板之间的485通信。本章将实现这样的功能:通过连接两个战舰STM32开发板的RS485接口,然后由KEY0控制发送,当按下一个开发板的KEY0的时候,就发送5个数据给另外一个开发板,并在两个开发板上分别显示发送的值和接收到的值。

本章,我们只需要配置好串口2,就可以实现正常的485通信了,串口2的配置和串口1基本类似,只是串口的时钟来自APB1,最大频率为36Mhz。

29.2 硬件设计

本章要用到的硬件资源如下:

1)指示灯DS0

2)KEY0按键

3)TFTLCD模块

4)串口2

5)RS485收发芯片

前面3个都有详细介绍,这里我们介绍RS485和串口2的连接关系,如图29.2.1所示:

图29.2.1 STM32与SP3485连接电路图

从上图可以看出:STM32的串口2通过P9端口设置,连接到SP3485,通过STM32的PG9控制SP3485的收发,当PG9=0的时候,为接收模式;当PG9=1的时候,为发送模式。这里注意,我们要设置好开发板上P9排针的连接,通过跳线帽将PA2和PA3分别连接到485T和485R 上面,如图29.2.2所示:

图29.2.2 硬件连接示意图

最后,我们用2根导线将两个开发板RS485端子的A和A,B和B连接起来。这里注意不要接反了(A接B),接反了会导致通讯异常!!

29.3 软件设计

打开我们的485实验例程,可以发现项目中加入了一个rs485.c文件以及其头文件rs485文件,同时485通信调用的库函数和定义分布在stm32f10x_usart.c文件和头文件stm32f10x_usart.h 文件中。

打开rs485.c文件,代码如下:

#include "sys.h"

#include "rs485.h"

#include "delay.h"

#ifdef EN_USART2_RX //如果使能了接收

//接收缓存区

u8 RS485_RX_BUF[64]; //接收缓冲,最大64个字节.

//接收到的数据长度

u8 RS485_RX_CNT=0;

void USART2_IRQHandler(void)

{

u8 res;

if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收到数据

{

res =USART_ReceiveData(USART2); //读取接收到的数据

if(RS485_RX_CNT<64)

{

RS485_RX_BUF[RS485_RX_CNT]=res; //记录接收到的值

RS485_RX_CNT++; //接收数据增加1

}

}

}

#endif

//初始化IO 串口2

//bound:波特率

void RS485_Init(u32 bound)

{

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|

RCC_APB2Periph_GPIOG, ENABLE);//使能GPIOA,G时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能串口2时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PG9端口配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOG, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA2

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA3

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入

GPIO_Init(GPIOA, &GPIO_InitStructure);

RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,ENABLE);//复位串口2 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,DISABLE);//停止复位

#ifdef EN_USART2_RX //如果使能了接收

USART_https://www.doczj.com/doc/cd2636162.html,ART_BaudRate = bound;//一般设置为9600;

USART_https://www.doczj.com/doc/cd2636162.html,ART_WordLength = USART_WordLength_8b;//8位数据长度USART_https://www.doczj.com/doc/cd2636162.html,ART_StopBits = USART_StopBits_1;//一个停止位

USART_https://www.doczj.com/doc/cd2636162.html,ART_Parity = USART_Parity_No;///奇偶校验位

USART_https://www.doczj.com/doc/cd2636162.html,ART_HardwareFlowControl=

USART_HardwareFlowControl_None;//无硬件数据流控制USART_https://www.doczj.com/doc/cd2636162.html,ART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发USART_Init(USART2, &USART_InitStructure); ; //初始化串口

NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; //使能串口2中断

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //先占优先级2级

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级2级

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道

NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化NVIC寄存器

USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启中断

USART_Cmd(USART2, ENABLE); //使能串口

#endif

RS485_TX_EN=0; //默认为接收模式

}

//RS485发送len个字节.

//buf:发送区首地址

//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节)

void RS485_Send_Data(u8 *buf,u8 len)

{

u8 t;

RS485_TX_EN=1; //设置为发送模式

for(t=0;t

{

while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);

USART_SendData(USART2,buf[t]);

}

while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);

RS485_RX_CNT=0;

RS485_TX_EN=0; //设置为接收模式

}

//RS485查询接收到的数据

//buf:接收缓存首地址

//len:读到的数据长度

void RS485_Receive_Data(u8 *buf,u8 *len)

{

u8 rxlen=RS485_RX_CNT;

u8 i=0;

*len=0; //默认为0

delay_ms(10); //等待10ms,连续超过10ms没有接收到一个数据,则认为接收结束

if(rxlen==RS485_RX_CNT&&rxlen)//接收到了数据,且接收完成了

{

for(i=0;i

{

buf[i]=RS485_RX_BUF[i];

}

*len=RS485_RX_CNT; //记录本次数据长度

RS485_RX_CNT=0; //清零

}

}

此部分代码总共4个函数,其中RS485_Init函数为485通信初始化函数,其实基本上就是在配置串口2,只是把PG9也顺带配置了,用于控制SP3485的收发。同时如果使能中断接收的话,会执行串口2的中断接收配置。USART2_IRQHandler函数用于中断接收来自485总线的数据,将其存放在RS485_RX_BUF里面。最后RS485_Send_Data和RS485_Receive_Data这两个函数用来发送数据到485总线和读取从485总线收到的数据,都比较简单。

头文件rs485.h中代码比较简单,在其中我们开启了串口2的中断接收。最后,我们看看主函数main的内容如下:

int main(void)

{

u8 key;

u8 i=0,t=0;

u8 cnt=0;

u8 rs485buf[5];

delay_init(); //延时函数初始化

NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600); //串口初始化为9600

LED_Init(); //LED端口初始化

LCD_Init(); //LCD初始化

KEY_Init(); //KEY初始化

RS485_Init(9600); //初始化RS485

POINT_COLOR=RED;//设置字体为红色

LCD_ShowString(60,50,200,16,16,"Mini STM32");

LCD_ShowString(60,70,200,16,16,"RS485 TEST");

LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");

LCD_ShowString(60,110,200,16,16,"2012/8/5");

LCD_ShowString(60,130,200,16,16,"KEY0:Send"); //显示提示信息

POINT_COLOR=BLUE;//设置字体为蓝色

LCD_ShowString(60,150,200,16,16,"Count:"); //显示当前计数值

LCD_ShowString(60,170,200,16,16,"Send Data:"); //提示发送的数据

LCD_ShowString(60,210,200,16,16,"Receive Data:"); //提示接收到的数据

while(1)

{

key=KEY_Scan(0);

if(key==KEY_RIGHT)//KEY0按下,发送一次数据

{

for(i=0;i<5;i++)

{

rs485buf[i]=cnt+i;//填充发送缓冲区

LCD_ShowxNum(60+i*32,190,rs485buf[i],3,16,0X80); //显示数据}

RS485_Send_Data(rs485buf,5);//发送5个字节

}

RS485_Receive_Data(rs485buf,&key);

if(key)//接收到有数据

{

if(key>5)key=5;//最大是5个数据.

for(i=0;i

LCD_ShowxNum(60+i*32,230,rs485buf[i],3,16,0X80); //显示数据}

t++;

delay_ms(10);

if(t==20)

{

LED0=!LED0;//提示系统正在运行

t=0;

cnt++;

LCD_ShowxNum(60+48,150,cnt,3,16,0X80); //显示数据

}

}

}

此部分代码,cnt是一个累加数,一旦KEY_RIGHT(KEY0)按下,就以这个数位基准连续发送5个数据。当485总线收到数据的时候,就将收到的数据直接显示在LCD屏幕上。

29.4 下载验证

在代码编译成功之后,我们通过下载代码到ALIENTEK战舰STM32开发板上(注意要2个开发板都下载这个代码哦),得到如图28.4.1所示:

图28.4.1 程序运行效果图

伴随DS0的不停闪烁,提示程序在运行。此时,我们按下KEY0就可以在另外一个开发板上面收到这个开发板发送的数据了。如图28.4.2所示:

图28.4.2 RS485实验测试图片

上图中,左侧的图片来自开发板A,发送了5个数据,右侧的图片来自开发板B,接收到了来自开发板A的5个数据。

本章介绍的485总线时通过串口控制收发的,我们只需要将P9的跳线帽稍作改变,该实验就变成了一个RS232串口通信实验了,通过对接两个开发板的RS232接口,即可得到同样的实验现象,有兴趣的读者可以实验一下。

基于STM32F103嵌入式实验指导书

实验一、STM32的开发环境与简单工程 一、实验目的 1、熟悉STM32开发板的开发环境; 2、熟悉MDK创建和配置STM32工程项目的基本流程; 3、熟悉STM32官方库的应用; 4、规范编程格式。 二、实验内容 本次实验配置MDK集成开发环境,新建一个简单的工程文件,添加STM32官方库并配置工程,编译运行这个工程文件。下载已经编译好的文件到开发板中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。 三、预备知识 基本单片机硬件知识、单片机软件编程语言、程序创建和调试的基本方法。 四、实验设备及工具 硬件:STM32开发平台 软件:STM32官方库;PC机操作系统Windows 98、Windows 2000或Windows XP;KEIL MDK 集成开发环境;串口转usb驱动。 五、实验步骤 1、在准备存放工程文件的目录下创建一新文件夹,命名为Proj_GPIO;在Proj_GPIO 文件夹里面分别再创建四个文件夹:CMSIS、USER、LIB、OBJ。如图1。 其中CMSIS(Cortex Microcontroller Software Interface Standard)用于存放Cortex-M 处理器系列的与供应商无关的软件抽象层和启动相关的代码文件; USER用于存放我们自己编写的代码文件(含自己移植的底层驱动),还有MDK工程; LIB存放所有的官方底层驱动库文件; OBJ用于工程输出的过程文件和最终的二进制文件。 图1

2、将官方库STM32F10x_StdPeriph_Lib_V3.5.0.rar解压。 1)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的所有文件和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下的所有文件都到第一步所创建的CMSIS文件夹中; 2)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目录下的文件(目录inc和scr)复制到第一步创建的LIB文件夹中; 3)把STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件复制到USER文件夹中。 3、打开MDK软件,新建一个工程Proj_GPIO保存到Proj_GPIO/USER中。CPU选择STM32F103ZE,如图2; 图2 4、新建一个空文档main.c保存到USER中,然后根 据绝对路径将文件对应添加到工程中,如右图。 5、配置工程属性,右键点击工程文件中的Target 1选择Options for Target ‘Target 1’打开工程选项对话框。做如下修改: 1)Output选项勾选Create HEX File,然后点击Select Folder for Objects按钮定位输出文件保存目录到工程的OBJ文件; 2)Listing选项,同样点击Select Folder for Listings定位输出文件保存目录到工程的OBJ 文件; 3)C/C++选项,Define中填入 STM32F10X_HD, USE_STDPERIPH_DRIVER系统的两个基 本宏定义;配置Include Paths属性,加入工 程中包含头文件的目录;如右图

STM32视频教程 智芯STM32开发板全套资料

视频下载地址: 第00讲智芯一号开发板硬件介绍和软件的安装方法:https://www.doczj.com/doc/cd2636162.html,/file/20155941第01讲绪论(上):https://www.doczj.com/doc/cd2636162.html,/file/20155942 第01讲绪论(下):https://www.doczj.com/doc/cd2636162.html,/file/20155943 第02讲STM32最小系统:https://www.doczj.com/doc/cd2636162.html,/file/20159819 第03讲系统时钟初始化函数与延时函数的实现:https://www.doczj.com/doc/cd2636162.html,/file/20159820 第04讲GPIO的工作原理与配置方法:https://www.doczj.com/doc/cd2636162.html,/file/20159821 第05讲点亮第一个LED(直接存在寄存器):https://www.doczj.com/doc/cd2636162.html,/file/20159822 第06讲软件仿真:https://www.doczj.com/doc/cd2636162.html,/file/20159823 第07讲点亮第一个LED(上)(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20167862 第07讲点亮第一个LED(下)(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20168792 第08讲按键输入(直接操作存寄存器):https://www.doczj.com/doc/cd2636162.html,/file/20166818 第09讲按键输入(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20166819 第10讲STM32的中断(上):https://www.doczj.com/doc/cd2636162.html,/file/20170166 第10讲STM32的中断(下):https://www.doczj.com/doc/cd2636162.html,/file/20170167 第10讲STM32的中断(中):https://www.doczj.com/doc/cd2636162.html,/file/20204175 第11讲外部中断(直接操作寄存器):https://www.doczj.com/doc/cd2636162.html,/file/20204176 第12讲外部中断(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20198720 第13讲彩屏的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20198721 第14讲彩屏的GUI函数:https://www.doczj.com/doc/cd2636162.html,/file/20198722 第15讲彩屏的GUI(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20198723 第16讲串口的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20201012 第17讲串口通信程序(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20204174 第18讲LabVIEW(一):https://www.doczj.com/doc/cd2636162.html,/file/20201869 第19讲LabVIEW(二) :https://www.doczj.com/doc/cd2636162.html,/file/20204173 第20讲LabView(三):https://www.doczj.com/doc/cd2636162.html,/file/20207918 第21讲LabVIEW(四):https://www.doczj.com/doc/cd2636162.html,/file/20207921 第22讲LabVIEW(五):https://www.doczj.com/doc/cd2636162.html,/file/20207923 第23讲LabVIEW(六):https://www.doczj.com/doc/cd2636162.html,/file/20207924 第24讲定时器的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20210307 第25讲ADC的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20211591 第26讲ADC的工作原理(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20210308 第27讲内部温度传感器的原理:https://www.doczj.com/doc/cd2636162.html,/file/20211035 第28讲内部温度传感器(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20212909 第29讲DS18B20的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20214967 第30讲DS18B20的工作原理(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20212910 第31讲DMA的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20214969 第32讲DMA的工作原理(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20214971 第33讲RTC和BKP的工作原理与配置:https://www.doczj.com/doc/cd2636162.html,/file/20214973 第34讲RTC的工作原理(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20214975 第35讲STM32低功耗的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20214977 第36讲STM32的低功耗的工作原理(库函数):https://www.doczj.com/doc/cd2636162.html,/file/20214979 第37讲红外遥控的工作原理:https://www.doczj.com/doc/cd2636162.html,/file/20216279

奋斗版STM32开发板Mini板硬件说明书

奋斗版STM32开发板Mini板的硬件说明 1. 供电电路: AMS1117-3.3输入+5V,提供3.3V的固定电压输出,为了降低电磁干扰,C1-C5为CPU 提供BANK电源(VCC:P50、P75、P100、P28、P11 GND:P49、P74、P99、P27、P10)滤波。CPU的模拟输入电源供电脚VDDA(P22)通过L1 22uH的电感与+3.3V VDD电压连接,CPU的模拟地VSSA(P19)及VREF-(P20)通过R1 0欧电阻与GND连接。VREF+(P21)采用VDDA(P22)电源基准。 为RTC的备份电源采用V1 3.3V锂离子片状电池。 2. 启动方式设置: Boot1—Boot0(P37,P94): x0: 内部程序存储区启动01:系统存储区启动(为异步通信ISP编程方式) 在此将BOOT1始终设置为0, BOOT0为可变的状态,在正常模式下将其置为0,在ISP 编程时将其置为1。用JP1跳线块设置,开路为ISP模式,短路为正常运行模式。 3. 时钟源电路: 外部晶体/陶瓷谐振器(HSE)(P12、P13):B1:8MHz晶体谐振器,C8,C9谐振电容选择10P。系统的时钟经过PLL模块将时钟提高到72MHz。 低速外部时钟源(LSE)(P8、P9):B2: 32.768KHz晶体谐振器。C10,C11谐振电容选择

10P。注意:根据ST公司的推荐, B2要采用电容负载为6P的晶振,否则有可能会出现停振的现象。 4. SPI存储电路: D2 AT45DB161(2M Bytes)CPU采用SPI1端口PA7-SPI1-MOSI(P32)、PA6-SPI1-MISO (P31)、PA5-SPI1-SCK(P30)、PA4-SPI1-NSS(P29)控制读写访问, SPI1地址:0x4000 3800 - 0x4000 3BFF 5. 显示及触摸接口模块: 显示器采用2.4” TFT320X240LCD(控制器ILI9325), 采用CPU的FSMC功能,LCD片选CS采用FSMC_NE1(P88),FSMC_A16(P58)作为LCD的RS选择,FSMC_nWE(P86)作为LCD的/WR, FSMC_nOE(P85)作为LCD的/RD, LCD的RESET脚用CPU的PE1(P98)(LCD-RST),FSMC_D0---FSMC_D15和LCD的D1-D8 D10-D17相互连接,触摸屏接口采用SPI1接口,片选为PB7-SPI1-CS3,由于LCD背光采用恒流源芯片PT4101控制,采用了PWM控制信号控制背光的明暗, PWM信号由PD13-LIGHT-PWM来控制。触摸电路的中断申请线由PB6-7846-INT接收。 LCD寄存器地址为:0x6000 0000, LCD数据区地址:0x6002 0000。

GD STM32F407开发板介绍

金龙电子工作室GD STM32F407开发板 板载:USB转串口,以太网,USB OTG,SD卡座(SDIO接口),摄像头OV7670(DCMI接口),I2S音频,2.8寸液晶屏(FSMC接口),SPI FLASH,加数度传感器等硬件资源。 主芯片:STM32F407VGT6,100PIN,Cortex-M4处理器最高运行频率为168MHz 1 Mbyte Flash 192+4 Kbyte SRAM 支持片外Flash, SRAM, PSRAM, NOR及NAND Flash 8080/6800 模式的LCD接口 USB 2.0 high-speed/full-speed device/host/OTG 10/100 Ethernet MAC 硬件IEEE 1588v2 2 CAN(2.0B Active) 4 UART 3 SPI 最高30 Mbit 2 IIS 8- to 14-bit摄像头接口最高48 Mbyte/s 1-bit (default), 4-bit and 8-bit SD/SDIO MMC card 12-bit 0.5μs A/D 12-bit D/A

17 timers 最高120MHz的计数频率 I/O最高频率为60MHz ISP及IAP编程 407板载资料 1.主芯片:STM32F407VGT6,100PIN 2.以太网功能(PHY:DM9161AEP) 3.2.8寸彩屏模块(FSMC总线方式),带加速度传感器 4.摄像头OV7670(配套) 5.JTAG 20PIN标准下载口 6.MICRO SD卡接口(SDIO方式) https://www.doczj.com/doc/cd2636162.html,B OTG主从设备接口 https://www.doczj.com/doc/cd2636162.html,B转串口(PL2303HX),可用USB下载程序,做串口实验 9.RTC电池座 10.I2S音频DA,支持WAV播放

单片机STM32实验报告

实验报告 课程名称:单片微机原理与车载系统 学生姓名蒋昭立 班级电科1601 学号16401700119 指导教师易吉良 成绩 2018年12月17日

实验1 GPIO实验 1.1 实验目的 1)熟悉MDK开发环境; 2)掌握STM32单片机的GPIO使用方法。 1.2 实验设备 1)一台装有Keil和串口调试软件的计算机; 2)一套STM32F103开发板; 3)STlink硬件仿真器。 1.3基本实验内容 1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本_V1.0》第3章,安装MDK 并新建test工程,运行例程,在串口窗宽观察结果,并记录如下: 从图片可以看出,例程运行成功,没有错误。 2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本_V1.0》第8章。实现功能:3 个按钮(KEY_UP、KEY0和KEY1),来控制板上的2 个LED(DS0 和DS1)和蜂鸣器,其中KEY_UP 控制蜂鸣器,按一次叫,再按一次停;KEY1 控制DS1,按一次亮,再按一次灭;KEY0 则同时控制DS0 和DS1,按一次,他们的状态就翻转一次。 理解连续按概念及其实现代码。参数mode 为0 的时候,KEY_Scan 函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。当mode 为1 的时候,KEY_Scan 函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。 寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。

STM32F429开发板用户手册

STM32F429开发板用户手册 介绍 STM32F429(32F429IDISCOVERY)开发板可以帮助你去学习高性能STM32F4系列,并去开发你自己的应用。它包含了一个STM32F429ZIT6和一个嵌入ST-LINK/V2调试接口,2.4吋TFTLCD,64MbitsSDRAM,ST微机电陀螺仪,按键和USB OTG接口。

1约定 下表提供了一些约定惯例,目前的文档可能会用到。

2快速入门 STM32F429开发板是一种廉价且易于上手的开发套件,可以让使用者快速评估和开始STM32F4的开发工作。 在安装和使用产品以前,请接收评估产品许可协议。 2.1启动 跟随以下顺序来设置STM32F429开发板并开始开发应用: 1、确认跳线JP3和CN4被设置为“on”(开发模式) 2、连接STM32F429Discovery开发板CN1到PC,使用USB电缆(type A/mini-B),开发板上电。 3、屏幕上以下应用可用: 时钟日历和游戏 视频播放器和图片浏览器(播放浏览USB大容量存储器上的视频和图片)性能显示器(观察CPU负载和图形测试) 系统信息 4、演示软件,也像其他软件例程,运行你用来开发STM32F4。 5、从例程开始开发你自己的应用吧。 2.2系统要求 ?Windows PC(XP,Vista,7) ?USB type A to mini-B cable 2.3支持STM32F429开发板的开发工具 ?Altium:TASKING?VX-Toolset ?Atollic:TrueSTUDIO ?IAR:EWARM ?Keil?:MDK-ARM 2.4订购码 要订购STM32F429Discovery kit,请使用STM32F429I-DISCO订购码。 3特性 STM32F429Discovery开发板提供一下特性: ?S TM32F429ZIT6具有2MB闪存,256KB的RAM,LQFP144封装。 ?板载ST-LINK/V2,带有选择模式跳线,可以作为独立的ST-LINK/V2使用。 ?板电源:通过USB总线或外部3V或5V电源。 ?L3GD20:ST微机电动作传感器,3轴数字输出陀螺仪 ?TFT LCD,2.4寸,262K色RGB,240*230分辨率 ?SDRAM64Mbits(1Mbit x16-bit x4-bank),包含自动刷新模式和节能模式 ?六个LED: LD1(红绿):USB通信 LD2(红):3.3V电源 两个用户LED LD3(绿),LD4红 两个USBOTG LED:LD5(绿)VBUS和LD6OC(过流) ?两个按键(user and reset)

STM32 开发板的介绍

STM32 开发板的介绍 STM32的开发板硬件资源如下: 1、STM32F103RBT6 TQFP64 FLASH:128K SRAM:20K; 2、MAX232通讯口可用于程序代码下载和调试实验; 3、SD卡接口; 4、RTC后备电池座; 5、两个功能开关; 6、复位连接; 7、两个状态灯; 8、所有I/O输出全部引用; 9、USB接口、可用于USB与MCU通讯实验; 10、标准的TJAG/SWDT仿真下载; 11、BOOT0 BOOT1Q启动模式; 12、电源开关; 13、电源指示灯

STM32开发板硬件详解 1、MCU部分原理图 该开发板采用3.3V工作电压,几个耦合电容使系统更加稳定。系统工作频率8M晶振、时钟频率32.768。 这里STM32的VBAT采用CR1220纽扣电池和VCC3.3混合供电方式,在有外部电源(VCC3.3)的时候,CR1220不给VBAT供电,而在外部电源断开的时候,则由CR1220给VBAT供电。这样,VBAT 总是有电的,以保证RTC的走时以及后备寄存器的内容不丢失。2、启动模式电路图 上图中的BOOT1用于设置STM32的启动方式,其对应启动模式如下表所示

PCB板标志图解如下: 3、TJAG电路 4、LED状态灯原理图 两个LED状态灯,其中LED0接在PA8、LED1接在PD2。 5、SD卡原理图

SD卡我们使用的是SPI1模式通讯,SD卡地SPI接口连接到STM32的SPI1上,SD-CS接在PA3上,MOSI接MCU PA7(MOSI)、SCK 接在MCU PA5(SCK)、MIS0接在MCU PA6(MIS0). 6、按键原理图 KEY1和KEY2用作普通按键输入,分别接在PA13和PA15上,

智嵌STM32F107网络互联开发板V2.2硬件使用手册

志峰物联公司版权所有技术支持QQ:498034132I STM32F107网络互联开发板V2.2硬件使用手册 版本号:A 拟制人:赵志峰 时间:2013年7月1 日

目录 1本文档编写目的 (1) 2硬件接口说明 (1) 3核心硬件电路说明 (2) 3.1电源电路 (2) 3.2按键与LED电路 (3) 3.3JTAG下载电路 (4) 3.4外扩存储电路 (5) 3.5RS232通讯电路 (5) 3.6RS485通讯电路 (6) 3.7CAN通讯电路 (6) 3.8USB电路 (6) 3.9DS18B20电路 (7) 3.10以太网接口电路 (8) 3.112.4G无线接口 (8) 4使用注意事项 (8)

1本文档编写目的 本使用手册是针对STM32F107网络互联开发板V2.2的硬件而编写的,包括硬件接口说明、核心硬件电路说明、使用注意事项等内容。 2硬件接口说明 该开发板的硬件结构如图1所示: STM32F107VCT6 LED USB OTG USB HOST DS18B20 图1硬件结构框图 开发板实物接口如图2所示: CAN2_L CAN2_H CAN1_L CAN1_H RS232RS485_B RS485_A 2.4G USB USB OTG USB 5V DS18B20JTAG CAN1 图2开发板硬件接口

注意:DS18B20的安装方向: DS18B20安装方式 3核心硬件电路说明 3.1电源电路 开发板供电方式有两种:5V电源适配器供电和USB供电。(1)5V适配器供电 直接将5V适配器插在J6上即可为板子供电,电路如图3所示:

(完整word版)STM32的485最简单例程

485最基本的半双工通信配置 采用STM32F103ZET6串口3连接485芯片通信口,485芯片的A,B通过485转串口模块与电脑相连,完成在串口软件上输入输出功能。 串口3,配置函数: void USART3_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); // USART3_TX -> PB10 , USART3_RX ->PB11 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); USART_https://www.doczj.com/doc/cd2636162.html,ART_BaudRate = 115200; // 1200; USART_https://www.doczj.com/doc/cd2636162.html,ART_WordLength = USART_WordLength_8b; USART_https://www.doczj.com/doc/cd2636162.html,ART_StopBits = USART_StopBits_1; USART_https://www.doczj.com/doc/cd2636162.html,ART_Parity = USART_Parity_No; //USART_Parity_Even; USART_https://www.doczj.com/doc/cd2636162.html,ART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_https://www.doczj.com/doc/cd2636162.html,ART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART3, &USART_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); #ifdef PDU_USART3_DMA

奋斗版STM32开发板Mini板硬件说明书SST

奋斗版STM32开发板Mini板(new)的硬件说明 1. 供电电路: AMS1117-3.3输入+5V,提供3.3V的固定电压输出,为了降低电磁干扰,C1-C5为CPU 提供BANK电源(VCC:P50、P75、P100、P28、P11 GND:P49、P74、P99、P27、P10)滤波。CPU的模拟输入电源供电脚VDDA(P22)通过L1 22uH的电感与+3.3V VDD电压连接,CPU的模拟地VSSA(P19)及VREF-(P20)通过R1 0欧电阻与GND连接。VREF+(P21)采用VDDA(P22)电源基准。 为RTC的备份电源采用V1 3.3V锂离子片状电池。 2. 启动方式设置: Boot1—Boot0(P37,P94): x0: 内部程序存储区启动01:系统存储区启动(为异步通信ISP编程方式) 在此将BOOT1始终设置为0, BOOT0为可变的状态,在正常模式下将其置为0,在ISP 编程时将其置为1。用JP1跳线块设置,开路为ISP模式,短路为正常运行模式。 3. 时钟源电路: 外部晶体/陶瓷谐振器(HSE)(P12、P13):B1:8MHz晶体谐振器,C8,C9谐振电容选择10P。系统的时钟经过PLL模块将时钟提高到72MHz。 低速外部时钟源(LSE)(P8、P9):B2: 32.768KHz晶体谐振器。C10,C11谐振电容选择

10P。注意:根据ST公司的推荐, B2要采用电容负载为6P的晶振,否则有可能会出现停振的现象。 4. SPI存储电路: D2 SST25VF016B(2M Bytes)CPU采用SPI1端口PA7-SPI1-MOSI(P32)、PA6-SPI1-MISO (P31)、PA5-SPI1-SCK(P30)、PA4-SPI1-NSS(P29)控制读写访问, SPI1地址:0x4000 3800 - 0x4000 3BFF 5. 显示及触摸接口模块: 显示器采用2.4” TFT320X240LCD(控制器ILI9325), 采用CPU的FSMC功能,LCD片选CS采用FSMC_NE1(P88),FSMC_A16(P58)作为LCD的RS选择,FSMC_nWE(P86)作为LCD的/WR, FSMC_nOE(P85)作为LCD的/RD, LCD的RESET脚用CPU的PE1(P98)(LCD-RST),FSMC_D0---FSMC_D15和LCD的D1-D8 D10-D17相互连接,触摸屏接口采用SPI1接口,片选为PB7-SPI1-CS3,由于LCD背光采用恒流源芯片PT4101控制,采用了PWM控制信号控制背光的明暗, PWM信号由PD13-LIGHT-PWM来控制。触摸电路的中断申请线由PB6-7846-INT接收。 LCD寄存器地址为:0x6000 0000, LCD数据区地址:0x6002 0000。

RS-485总线收发实验要点

RS-485总线收发实验 在本章节,我们将介绍RS-485总线的使用。本实验一共需要两块神舟IV号STM32开发板,一块作为RS485的发送端,另一块作为RS485的接收端,接收总线上的数据。本节分为 如下几个部分: 1 RS-485总线实验的意义与作用 2实验原理 3软件设计 4硬件设计 5下载与验证 6实验现象 意义与作用 前面两个例程,我们分别讲解了串口printf实验和串口中断收发实验,对RS232串口原理及其应用有了一定的了解,但是由于RS232接口标准出现较早,难免有不足之处,主要有以 下四点: (1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。 (2)传输速率较低,在异步传输时,波特率为20Kbps。 (3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。 (4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。 针对RS232接口的不足,于是就不断出现了一些新的接口标准,RS-485就是其中之一, 它具有以下特点: (1)RS-485的电气特性:逻辑"1"以两线间的电压差为+(2—6)V表示;逻辑"0"以两线间的电压差为-(2—6)V表示。接口信号电平比RS-232降低了,就不易损坏接口电 路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。 (2)RS-485的数据最高传输速率为10Mbps(实际取决于RS485接口芯片和电路)。(3)RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。 (4)RS-485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS-232接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连 接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地 建立起设备网络。 (5)因为RS485接口组成的半双工网络,一般只需二根连线(我们一般叫AB线),所以RS485接口均采用屏蔽双绞线传输。 基于以上原因,RS485总线在工业控制行业应用非常广泛,适合分散的,远距离(上千米)的多点通信,这是RS232所不能实现的,因此,通过使用STM32开发板实现RS485的通信,我们可以了解RS485总线的应用和基本原理,搭建RS485通信网络。 实验原理 RS-485总线简介

GDSTM32F407开发板介绍共3页文档

金龙电子工作室 GD STM32F407开发板 板载:USB转串口,以太网,USB OTG,SD卡座(SDIO接口),摄像头 OV7670(DCMI接口),I2S音频,2.8寸液晶屏(FSMC接口),SPI FLASH,加数度传感器等硬件资源。 主芯片:STM32F407VGT6,100PIN,Cortex-M4处理器最高运行频率为168MHz 1 Mbyte Flash 192+4 Kbyte SRAM 支持片外Flash, SRAM, PSRAM, NOR及NAND Flash 8080/6800 模式的LCD接口 USB 2.0 high-speed/full-speed device/host/OTG 10/100 Ethernet MAC 硬件IEEE 1588v2 2 CAN(2.0B Active) 4 UART 3 SPI 最高30 Mbit 2 IIS 8- to 14-bit摄像头接口最高48 Mbyte/s 1-bit (default), 4-bit and 8-bit SD/SDIO MMC card 12-bit 0.5μs A/D 12-bit D/A 17 timers 最高120MHz的计数频率

I/O最高频率为60MHz ISP及IAP编程 407板载资料 1.主芯片:STM32F407VGT6,100PIN 2.以太网功能(PHY:DM9161AEP) 3.2.8寸彩屏模块(FSMC总线方式),带加速度传感器 4.摄像头OV7670(配套) 5.JTAG 20PIN标准下载口 6.MICRO SD卡接口(SDIO方式) https://www.doczj.com/doc/cd2636162.html,B OTG主从设备接口 https://www.doczj.com/doc/cd2636162.html,B转串口(PL2303HX),可用USB下载程序,做串口实验

stm32开发板哪个好

stm32开发板哪个好 stm32开发板样式多种多样,stm32开发板哪个好?比如官方的4M板\mini stm32\野火开发板,还有【正点原子】的阿波罗STM32F429开发板、阿波罗STM32F767开发板、战舰V3开发板(Alientek);【野火】的STM32F103-霸道开发板、F429-挑战者;【安富莱】的STM32-V5,STM32F407开发板、安富莱STM32F103ZE开发板V4;在此首先列举ST官方开发板。1、Nucleo板STM32 NUCLEO开发平台是ST最新发布的易用性好、可扩展性佳的低成本平台。开发平台具有mbed功能支持Arduino接口,同时还提供ST Morpho扩展排针,可连接微控制器的所有周边外设,可以利用Arduino巨大生态系统优势,便于快速实现STM32学习和评估。它具有六大特性:1、全新设计的ST-LINK/V2-1仿真器平台,可以独立使用 2、更加灵活的供电方式,适合实验室和现场开发应用 3、统一的主MCU核心板设计,真正一板多用 4、外部资源少,可扩展性好 5、支持在线和单机多种IDE开发环境,丰富开发人员的选择 6、丰富的软件代码例程支持,方便短时间上手 2、Discovery探索套件板STM32 探索套件是帮助新用户探索STM32性能的入门工具,同时为项目工程师提供快速制作样机的开发平台。该套件包括演示特定器件特性所需的基础设施。借助HAL库和综合软件示例,可从器件特性和附加价值中受益。通过扩展连接器,可连接器件的大多数I/O,并有助于连接附加硬件。集成若干外设模块,此探索套件由两个部分组成,一个ST-LINK/V2用于调试和编程,一个STM32的最小开发板集成了与对应STM32芯片特殊外设相关的其他器件。 3、STM32全功能评估板集成众多外设模块,通常板载对应系列最大封装的目标芯片。同时搭载STLINK-V2,方便客户进行项目全功能评估开发。如:STM32V100评估板STM103V100是英蓓特公司新推出的一款基于ST意法半导体STM32系列处理器

第25讲 485通信实验

7.1RS-485总线收发实验 7.1.1485简介 485(一般称作RS485/EIA-485)是隶属于OSI(OSI:开放系统互连基本参考模型。开放,是指非垄断的。系统是指现实的系统中与互联有关的各部分。)模型物理层的电气特性规定为2线,半双工,多点通信的标准。它的电气特性和RS-232大不一样。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。 RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。 RS485的特点包括: 1)接口电平低,不易损坏芯片。RS485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V 表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。 2)传输速率高。10米时,RS485的数据最高传输速率可达35Mbps,在1200m时,传输速度可达100Kbps。 3)抗干扰能力强。RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。 4)传输距离远,支持节点多。RS485总线最长可以传输1200m以上(速率≤100Kbps)一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。 7.1.2RS485的通信概念 RS-485 是一个电气接口规范它只规定了平衡驱动器和接收器的电特性而没有规定接 插件传输电缆和通信协议。 RS-485建议性标准作为一种多点差分数据传输的电气规范,现已成为业界应用最为广泛的标准通信接口之一,这种通信接口允许在简单的一对双绞线上进行多点双向通信,它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的,因此许多不同领域都采用RS-485作为数据传输链路,它是一种极为经济并具有相当高的噪声抑制、传输速率、传输距离和宽共模范围的通信平台。 RS-485是一种在工业上作为数据交换的手段而广泛使用的串行通信方式,数据信号采用差分传输方式,也称作平衡传输,因此具有较强的抗干扰能力。它使用一对双绞线,将其中一线定义为A,另一线定义为B。如下图所示:

STM32神舟系列开发板从零入门到精通

第5章 STM32神舟I号快速入门篇2013年1月版本 V1.0 作者:https://www.doczj.com/doc/cd2636162.html, STM32神舟ARM系列技术开发板产品目录: ● 神舟51开发板(51+ARM)开发板 ● 【神舟I号:STM32F103RBT6 + 2.8"TFT 触摸彩屏】 ● 神舟II号:STM32F103VCT6 + 3.2"TFT 触摸彩屏 ● 神舟III号:STM32F103ZET6 + 3.2"TFT 触摸彩屏 ● 神舟IV号:STM32F107VCT6 + 3.2"TFT 触摸彩屏 ● STM32核心板:四层核心板 (STM32F103ZET+207ZGT+407ZGT+407IGT) ● 神舟王103系列(STM32F103ZET核心板) ● 神舟王207系列(STM32F207ZGT核心板) ● 神舟王407系列(STM32F407ZGT/407IGT核心板) ● 神舟王全系列(STM32F103ZET/207ZGT/407ZGT核心板): 全功能底板(支持MP3,以太网,收音机,无线,SRAM,Nor/Nand Flash,鼠标,键盘,红外接收,CAN,示波器,电压表,USB HOST,步进电机,RFID物联网等) ● 神舟51开发板(STC 51单片机+STM32F103C8T6核心板):全功能底板(支持音频播放,无线,鼠标,键盘,红外收发,CAN,温度传感器,直流电机,步进电机,实时时钟,两路485,两路继电器,小喇叭,热敏光敏电阻,RFID物联网等)

目录 第5章 STM32神舟I号快速入门篇 (1) 5.1 理解芯片控制的原理 (3) 5.2 芯片管脚控制LED灯原理图解释 (4) 5.3 STM32相关的芯片手册有哪些?我们如何阅读这些资料 (5) 5.4 STM32芯片各个管脚是怎么控制以及被管理的?(如何阅读芯片手册) (6) 5.5 STM32芯片单个管脚是怎么被控制以及被管理的?(如何阅读芯片寄存器) (9) 5.6 分析一个最简单的例程 (13) 5.6.1 例程硬件原理图说明 (13) 5.6.2 例程main.c源代码(可以直接运行): (13) 5.6.3 例程环境搭建 (16) 5.6.3 实验现象 (22) 5.6.4 例程软件架构和代码分析(只有一个main.c文件) (22) 5.7 例程代码详细说明 (28) 5.7.1 代码的定义和声明如何与芯片内部资源挂钩 (28) 5.7.2 代码如何映射到映射到芯片内部的寄存器 (30) 5.7.3 main函数寄存器级分析(重点) (31) 5.8 库函数与我们这个例程之间的关系 (36) 5.9 其他更多技术资料和技术支持获取渠道 (36)

智嵌 STM32F407开发板基本型V1.0实验例程操作手册

北京智嵌物联网电子技术有限公司 I 智嵌 STM32F407开发板基本型V1.0实验例程操作手册 版本号:A 拟制人:赵工 时 间 :2014年12月27日

目录 1本文档编写目的 (1) 2实验例程操作说明 (1) 2.1LED闪烁实验 (1) 2.2KEY_LED实验 (1) 2.3RS232通讯实验 (1) 2.4RS485通讯实验 (2) 2.5CAN1通讯实验 (3) 2.6I2C实验—读写24c04 (3) 2.7SPI通讯实验--读写SST25016B (5) 2.8CPU温度测量实验 (5) 2.9CRC实验 (5) 2.10DAC例程实验 (6) 2.11DS18B20温度测量实验 (6) 2.12EXIT例程实验 (6) 2.13RNG随机数发生器例程实验 (7) 2.14RTC时钟例程实验 (7) 2.15独立看门狗例程实验 (8) 2.1616通道ADC采集实验 (9) 2.17U盘读写实验 (10) 2.18SD卡FatFS文件系统实验 (11) 2.19USB数据存储实验-PC机通过USB读写SD卡实验 (13) 2.20基于OLED的RFID_RC522读写IC卡实验 (14) 2.21OLED显示实验 (16) 2.22TCP服务器收发数据实验 (16) 2.23动态IP实验 (18) 2.24HTTP网页服务器实验 (20) 2.25 2.4G无线模块NRF24l01通信实验 (22) 2.26SNTP协议实验_网络授时_RTC实验 (22) 2.27UDP客户端发送数据实验 (26) 2.28UDP服务器收发数据实验 (27) 2.29TCP客户端收发数据实验 (29) 2.30HTTP网页拍照例程 (32) 2.31其他实验例程 (33)

stm32实验485实验

#include "sys.h" #include "usart.h" #include "delay.h" #include "led.h" #include "beep.h" #include "key.h" #include "exti.h" #include "wdg.h" #include "timer.h" #include "tpad.h" #include "oled.h" #include "lcd.h" #include "usmart.h" #include "rtc.h" #include "wkup.h" #include "adc.h" #include "dac.h" #include "dma.h" #include "24cxx.h" #include "flash.h" #include "rs485.h" int main(void) { u8 key; u8 i=0,t=0; u8 cnt=0; u8 rs485buf[5]; Stm32_Clock_Init(9); //系统时钟设置 uart_init(72,9600); //串口初始化为9600 delay_init(72); //延时初始化 LED_Init(); //初始化与LED连接的硬件接口 LCD_Init(); //初始化LCD usmart_dev.init(72); //初始化USMART KEY_Init(); //按键初始化 RS485_Init(36,9600); //初始化RS485 POINT_COLOR=RED;//设置字体为红色 LCD_ShowString(60,50,200,16,16,"WarShip STM32"); LCD_ShowString(60,70,200,16,16,"RS485 TEST"); LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(60,110,200,16,16,"2012/9/9"); LCD_ShowString(60,130,200,16,16,"KEY0:Send"); //显示提示信息

相关主题
文本预览
相关文档 最新文档