资源简介
STM32串口通信协议和状态机模式程序,亲测能用。内有详细的讲解文档,很好的学习资料。
代码片段和文件信息
#include
#include “stm32f10x.h“
#include “ADXL345.h“
#include “Type.h“
volatile u8 TxMailBox = 0;
extern CANProtocolStruct CANprotocalStruct;
void SPI_Config(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA|RCC_APB2Periph_SPI1 ENABLE);
/*configure SPI NSSSCKMISOMOSI*/
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA &GPIO_InitStructure);
GPIO_SetBits(GPIOAGPIO_Pin_4);
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA &GPIO_InitStructure);
/*SPI1 Peripheral Configuration*/
SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_CPOL=SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA=SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_4;
SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial=7;
SPI_Init(SPI1 &SPI_InitStructure);
SPI_Cmd(SPI1ENABLE);
}
u8 read_byte(u8 add)
{
GPIO_ResetBits(GPIOAGPIO_Pin_4);
while(SPI_I2S_GetFlagStatus(SPI1SPI_I2S_FLAG_TXE)==RESET);
SPI_I2S_SendData(SPI1(add|0x80)<<8|0x00);
while(SPI_I2S_GetFlagStatus(SPI1 SPI_I2S_FLAG_RXNE)==RESET);
GPIO_SetBits(GPIOAGPIO_Pin_4);
return SPI_I2S_ReceiveData(SPI1)&0xff;
}
void write_byte(u8 addu8 val)
{
GPIO_ResetBits(GPIOAGPIO_Pin_4);
SPI_I2S_SendData(SPI1add<<8|val);
while(SPI_I2S_GetFlagStatus(SPI1SPI_I2S_FLAG_TXE)==RESET);
while(SPI_I2S_GetFlagStatus(SPI1 SPI_I2S_FLAG_RXNE)==RESET);
GPIO_SetBits(GPIOAGPIO_Pin_4);
SPI_I2S_ReceiveData(SPI1)&0xff;
}
void InitAdxl345(void)
{ //Can128中断初始化
write_byte(ADXL345_REG_ADDR_DATA_FORMAT ADXL345_FULL_RES); //数据格式控制 0x31 中断低电平有效 -+2g
write_byte(ADXL345_REG_ADDR_BW_RATEADXL345_RATE_400); //数据速率及功率模式控制 0x2c数据传输速率为50
write_byte(ADXL345_REG_ADDR_POWER_CTLADXL345_MODE_MEASURE); //省电特性控制0x2d 测量模式
write_byte(ADXL345_REG_ADDR_OFSX0x30); //X轴偏移 偏移量0
write_byte(ADXL345_REG_ADDR_OFSY0x00); //Y轴偏移 偏移量0
write_byte(ADXL345_REG_ADDR_OFSZ0x00); //Z轴偏移 偏移量0
}
/********************************************************************
Function: ReadL345DataXYZ
Description: 读Adxl345的X轴数据
Input: none
Output: none
return: none
*********************************************************************/
void ReadL345DataXYZ(void)
{
u
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3992 2013-01-16 20:08 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\ADXL345.c
文件 8998 2013-01-16 09:35 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\ADXL345.h
文件 544 2013-01-12 12:23 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\beep.c
文件 161 2013-01-12 12:23 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\beep.h
文件 2526 2013-01-16 20:40 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\can1.c
文件 139 2013-01-16 20:40 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\can1.h
文件 4378 2013-01-12 12:23 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\can_lp.c
文件 174 2013-01-12 12:23 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\can_lp.h
文件 47200 2013-01-12 12:23 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\fonts.c
文件 2151 2013-01-12 12:23 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\fonts.h
文件 482 2013-07-02 19:12 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Include.h
文件 380 2013-01-16 08:59 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Init.c
文件 83 2013-01-16 08:59 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Init.h
文件 5934 2013-06-25 10:28 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\key.c
文件 2542 2013-06-25 10:29 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\key.h
文件 1692 2013-01-16 20:31 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\led.c
文件 373 2013-01-16 20:31 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\led.h
文件 7627 2013-06-06 16:06 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\nRF24L01.c
文件 5583 2013-01-27 10:46 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\nRF24L01.h
文件 1922 2013-07-03 21:28 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\NVIC.c
文件 85 2013-01-16 08:55 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\NVIC.h
文件 10717 2013-07-04 09:36 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Printf.c
文件 702 2013-07-03 20:24 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Printf.h
文件 5650 2013-01-16 20:20 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Protocol.c
文件 258 2013-01-16 08:50 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Protocol.h
文件 709 2013-06-24 10:36 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\PVD.c
文件 78 2013-06-24 10:37 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\PVD.h
文件 1322 2013-01-16 20:05 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Queue.c
文件 420 2013-01-12 20:34 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\Queue.h
文件 2943 2013-01-27 10:52 STM32板子串口通信协议_状态机模式\实现代码\STM32107接收\config\SPI.c
............此处省略579个文件信息
相关资源
- 舵机控制TIM1
- 互联网串口通信 周云波.rar
- 工业控制计算机典型应用系统编程实
- STM32F103RCT6_USART1串口通信代码
- 摄像机串口通信代码 VISCA协议VS完整外
- 利用API函数实现串口通信
- 基于Modbus通信协议的串口通信程序
- STM32 USB VCP Driver V1.3 32&64
- USB转虚拟串口
- STM32 之间实现串口通信
- LabWindowsCVI数据采集与串口通信典型应
- 51单片机与CPLD的串口通信
- STM32F429标准库串口通信历程
- Openmv与STM32通信.zip
- STM32F103C8T6标准库部分例程点灯、串口
- Visual.Cpp.TurboC串口通信编程实践 (第
- visual basic 串口通信与测控应用技术实
- CSerial类在vs2015中开发的简单串口通信
- LABVIEW虚拟仪器数据采集与串口通信测
- 51单片机与蓝牙模块的串口通信C程序
- LabVIEW串口通信参考
- 基于CC2530的温湿度传感器及串口通信
- Modbus Rtu Slave从机demo实现串口通信
- zigbee之串口通信
- QT5串口通信Hex格式传输
- MSP430F149与ESP8266串口通信
- 串口通信 pc机到FPGA verilog语言
- VisualC.NET串口通信及测控应用典型程序
- 基于qt的usb串口通信
- 一看就懂的51单片机RS232串口程序
评论
共有 条评论