• 大小: 11.75MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-22
  • 语言: 其他
  • 标签: 串口通信  

资源简介

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个文件信息

评论

共有 条评论