STM32串口通信协议和状态机模式程序


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接收configADXL345.c

     文件       8998  2013-01-16 09:35  STM32板子串口通信协议_状态机模式实现代码STM32107接收configADXL345.h

     文件        544  2013-01-12 12:23  STM32板子串口通信协议_状态机模式实现代码STM32107接收configeep.c

     文件        161  2013-01-12 12:23  STM32板子串口通信协议_状态机模式实现代码STM32107接收configeep.h

     文件       2526  2013-01-16 20:40  STM32板子串口通信协议_状态机模式实现代码STM32107接收configcan1.c

     文件        139  2013-01-16 20:40  STM32板子串口通信协议_状态机模式实现代码STM32107接收configcan1.h

     文件       4378  2013-01-12 12:23  STM32板子串口通信协议_状态机模式实现代码STM32107接收configcan_lp.c

     文件        174  2013-01-12 12:23  STM32板子串口通信协议_状态机模式实现代码STM32107接收configcan_lp.h

     文件      47200  2013-01-12 12:23  STM32板子串口通信协议_状态机模式实现代码STM32107接收configfonts.c

     文件       2151  2013-01-12 12:23  STM32板子串口通信协议_状态机模式实现代码STM32107接收configfonts.h

     文件        482  2013-07-02 19:12  STM32板子串口通信协议_状态机模式实现代码STM32107接收configInclude.h

     文件        380  2013-01-16 08:59  STM32板子串口通信协议_状态机模式实现代码STM32107接收configInit.c

     文件         83  2013-01-16 08:59  STM32板子串口通信协议_状态机模式实现代码STM32107接收configInit.h

     文件       5934  2013-06-25 10:28  STM32板子串口通信协议_状态机模式实现代码STM32107接收configkey.c

     文件       2542  2013-06-25 10:29  STM32板子串口通信协议_状态机模式实现代码STM32107接收configkey.h

     文件       1692  2013-01-16 20:31  STM32板子串口通信协议_状态机模式实现代码STM32107接收configled.c

     文件        373  2013-01-16 20:31  STM32板子串口通信协议_状态机模式实现代码STM32107接收configled.h

     文件       7627  2013-06-06 16:06  STM32板子串口通信协议_状态机模式实现代码STM32107接收config
RF24L01.c

     文件       5583  2013-01-27 10:46  STM32板子串口通信协议_状态机模式实现代码STM32107接收config
RF24L01.h

     文件       1922  2013-07-03 21:28  STM32板子串口通信协议_状态机模式实现代码STM32107接收configNVIC.c

     文件         85  2013-01-16 08:55  STM32板子串口通信协议_状态机模式实现代码STM32107接收configNVIC.h

     文件      10717  2013-07-04 09:36  STM32板子串口通信协议_状态机模式实现代码STM32107接收configPrintf.c

     文件        702  2013-07-03 20:24  STM32板子串口通信协议_状态机模式实现代码STM32107接收configPrintf.h

     文件       5650  2013-01-16 20:20  STM32板子串口通信协议_状态机模式实现代码STM32107接收configProtocol.c

     文件        258  2013-01-16 08:50  STM32板子串口通信协议_状态机模式实现代码STM32107接收configProtocol.h

     文件        709  2013-06-24 10:36  STM32板子串口通信协议_状态机模式实现代码STM32107接收configPVD.c

     文件         78  2013-06-24 10:37  STM32板子串口通信协议_状态机模式实现代码STM32107接收configPVD.h

     文件       1322  2013-01-16 20:05  STM32板子串口通信协议_状态机模式实现代码STM32107接收configQueue.c

     文件        420  2013-01-12 20:34  STM32板子串口通信协议_状态机模式实现代码STM32107接收configQueue.h

     文件       2943  2013-01-27 10:52  STM32板子串口通信协议_状态机模式实现代码STM32107接收configSPI.c

............此处省略579个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)