Proteus仿真stm32f103实现SPI

发布者:诗意世界最新更新时间:2020-07-29 来源: 51hei关键字:Proteus仿真  stm32f103  SPI 手机看文章 扫描二维码
随时随地手机看文章

单片机源程序如下:

#include "stm32f10x.h"

#include "spi.h"

#include "Module.h"


#include




void Delay_Ms(u16 time);

void RCC_Configuration(void);

//void GPIO_Configuration(void);

u32 retry=0;       

int i=0;


/* Private functions ---------------------------------------------------------*/

/*******************************************************************************

* Function Name  : main

* Description    : Main program.

* Input          : None

* Output         : None

* Return         : None

*******************************************************************************/

int main(void)

{


          RCC_Configuration();//使能外设时钟

        //GPIO_Configuration();

        SEG_Init();

        SPI1_Init();       

        //SPI1_SetSpeed(SPI_BaudRatePrescaler_256);       

       

       


       


       

       

       


       


        //========实现数码管显示==========

          while (1)

          {

                       

                       


SEG_Display(8830,0);

                       

                       

                /*for(i=0;i<9999;i++)

                {

                        for(j=0;j<500;j++)

                                SEG_Display(i,0);

                }        */          

                //SEG_Display(1234,3);

          }

}


/*******************************************************************************

* Function Name  : Delay_Ms

* Description    : delay 1 ms.

* Input          : time (ms)

* Output         : None

* Return         : None

*******************************************************************************/

void Delay_Ms(u16 time)  //延时函数

{

        u16 i,j;

        for(i=0;i                  for(j=1000;j>0;j--);

}


/*******************************************************************************

* Function Name  : RCC_Configuration

* Description    : Configures the different system clocks.

* Input          : None

* Output         : None

* Return         : None

*******************************************************************************/

void RCC_Configuration(void)

{

        //==========================使用外部RC晶振========================================

          RCC_DeInit();                                //初始化为缺省状态

        //RCC_HSICmd(ENABLE);

          RCC_HSEConfig(RCC_HSE_ON);  //高速时钟使能

          while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);  //等待高速时钟使能就绪


    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);        //Enable Prefetch Buffer

    FLASH_SetLatency(FLASH_Latency_2);                                                  // Flash 2 wait state

    RCC_HCLKConfig(RCC_SYSCLK_Div1);                                                 // HCLK = SYSCLK

    RCC_PCLK2Config(RCC_HCLK_Div1);                                                        // PCLK2 = HCLK

    RCC_PCLK1Config(RCC_HCLK_Div2);                                                          // PCLK1 = HCLK/2

    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);        // PLLCLK = 8MHz * 9 = 72 MHz  

    RCC_PLLCmd(ENABLE);                                                                                  // Enable PLL

    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);                // Wait till PLL is ready


    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);                                  // Select PLL as system clock source

    while(RCC_GetSYSCLKSource() != 0x08);                                        // Wait till PLL is used as system clock source

       

       

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);        // 使能APB2外设GPIOA时钟

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);        // 使能APB2外设GPIOB时钟

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);        // 使能APB2外设GPIOC时钟

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 , ENABLE);        // 使能APB2外设SPI1时钟

}


关键字:Proteus仿真  stm32f103  SPI 引用地址:Proteus仿真stm32f103实现SPI

上一篇:STM32开源闭环步进电机源程序
下一篇:stm32按键单击,双击,长按

推荐阅读最新更新时间:2024-11-07 17:59

ARM7单片机(学习ing)—(六)、SPI接口—01
六、SPI接口 六—(01)、SPI相关应用和寄存器的介绍~~ 1、特性 2、描述 3、管脚描述 4、寄存器描述 a、SPI控制寄存器(SPCR—0XEOO2000) b、SPI状态寄存器(SPSR —0XE0020004) c、SPI数据寄存器(SPDR—0XE0020008) d、SPI时钟计数寄存器(SPCCR—0XE00200OC) e、SPI中断寄存器(SPINT—0XE002001C) 5、SPI方框图
[单片机]
ARM7单片机(学习ing)—(六)、<font color='red'>SPI</font>接口—01
SPI协议工作过程详解文档,内含实例代码
SPI:一种3线(有的没有SS线(选择主或从机模式))或4线的通信方式: MOSI:主机出从机进数据线 MISO:主机进从机从数据线 SCK: 时钟线 SS: 主从模式选择线 工作过程的理解:设置好相应的配置后就可以发送或接收数据,当放送或接收完成后就会是SPIF置位,此时如果开了中断就会就入中断服务程序。如果没开中断就可以通过查询该标志位来做相应的事。进入中段服务程序后,或者读(写)SPDR寄存器都可以清零SPIF标志位。从而可以开始下一次的传输 相应的寄存器 1:SCPR:控制寄存器:SPI的大部分设置 2:SPSR:标志寄存器:(查看一些标志(主要是SPIF位)和设置
[单片机]
<font color='red'>SPI</font>协议工作过程详解文档,内含实例代码
stm32F103VET6的启动文件详解
一、启动文件简介 启动文件是用汇编语言编写的,是上电之后执行的第一个程序。主要以一下几个功能 1、初始化堆栈指针SP=_initial_sp 2、初始化PC指针 = Rest_Handler 3、初始化中断向量表 4、配置系统时钟 5、调用——main初始化用户堆栈,最终调用main函数去到C语言的世界 ARM汇编指令 二、启动文件代码分析 **Stack—栈** 1 Stack_Size EQU 0x00000400 2 3 AREA STACK, NOINIT, READWRITE, ALIGN=3 4 Stack_Mem SPACE Stack_Size 5 __initial_sp 解析:开辟大小为0x0000
[单片机]
<font color='red'>stm32F103</font>VET6的启动文件详解
SPI会展见闻:融资仍是拉美光伏市场兴起的挑战
NPD Solarbuzz上海办公室 , 2012年9月21日—在SPI 2012会议的第二天,参加会展的很多下游厂商关注的重点明显不再是美国本土的项目开发,而是在下一个新兴市场拓展销售渠道。 随着传统欧洲市场推动全球光伏市场的能力减弱,以及中国和印度从新兴市场向成熟市场迈进,现在很多讨论围绕着光伏下一步将在哪里获得成功,以及哪些国家将会成为值得追踪的新兴区域。 尽管过去几年光伏系统部件价格的快速下降对供应商造成很大挑战,但光伏的经济性也因此在很多新市场有了竞争力。在SPI会议期间其中探讨的一个新兴市场是拉美地区。会议嘉宾讨论了该区域的现状与前景,市场发展初期的困难,以及在各类客户群中都缺少合适的项目融资等等。 事实上,所有
[网络通信]
STM32——简述USART与SPI、IIC之间的区别与联系
简述USART与SPI、IIC之间的区别与联系 第一个区别当然是名字: SPI(Serial Peripheral Interface) 串行外设接口 I2C(INTER IC BUS) 集成电路总线 USART(Universal Asynchronous Receiver Transmitter) 通用异步收发器 第二个区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。 SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信
[单片机]
移植ucosII到STM32F103ZE(七)
d) 设置仿真下载工作选项卡 Debug: 我用的是J-link,设置如下 e) 设置 utilities 选项卡: 根据自己芯片型号选择,我的 stm32f103ze 属于高密度型的。 f) 把Crete HEX_File选项选上,用于生成目标文件stm32-ucosii-demo.hex g) 运行生成16进制文件,下载运行,观察DS1和DS2是否轮流闪烁。 六、 参考文献: 1) 《ARM Cortex-M3权威指南》北京航空航天大学出版社 第1版 (2009年7月1日)
[单片机]
0~100 mV精密电压源的设计与仿真
    0~100 mV精密电压源是航空发动机温度控制盒等重要控制系统定检时必不可少的激励信号源,设计时要求该精密信号源的输出信号偏移量ΔUomax≤0.02 mV,最大输出驱动电流Iomax=20mA,输出范围:0≤Uo≤100 mV,对系统的稳定性要求非常高。对此要求,传统的精密电压源一般采用模拟电路,由精密电位器调节生成,需要很高的D/A分辨率和抗干扰能力 。这种电压源不但操作不方便,而且随温度等外界条件影响较大,因而还要加上恒温箱和冷却风扇等辅助措施,大大增加了定检设备的体积和成本,而且输出精度和驱动能力也难以满足要求。     针对上述问题,本文提出了一种新的设计方案。为确保系统软硬件设计的正确性和缩短开发周期,本文基于
[电源管理]
0~100 mV精密电压源的设计与仿真
一文详解stm32 spi nss相关知识
1.概述 目前网络上使用stm32 spi的nss,基本上都使用的是nss的软件管理模式。对于nss的硬件管理模式,程序的配置以及对nss的软件管理模式与硬件管理模式的说明,真的少之又少。这可能跟stm32官方文档对nss的描述不清也有很大关系吧,下面就带大家理解理解nss,当然了这篇文章是笔者阅读了stm32 spi官方文档再结合网友的一些文章,最终以自己个人对nss理解来编写的,如果有错误之处,还请指正。 2.nss的管理模式 nss的管理模式分为:硬件管理和软件管理。nss的管理模式由SSM决定。 nss其实分为外部引脚和内部引脚的。外部nss引脚就是芯片上肉眼可见的与GPIO复用的引脚;内部nss引脚就是stm32芯片
[单片机]
一文详解stm32 <font color='red'>spi</font> nss相关知识
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved