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 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504701.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

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

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于MSP430单片机的可调恒流源Proteus仿真程序设计
;=~2#define PWM_1   P2OUT|=8#define PWM_0   P2OUT&=~8/**************定义函数************************/void LCD_write_command(unsigned char command);//写入指令函数void LCD_write_dat( unsigned char dat);//写入数据函数void LCD_set_xy( unsigned char x, unsigned char y );//设置显示位置函数void LCD_dsp_char( unsigned char x
发表于 2020-07-22
基于MSP430单片机的可调恒流源<font color='red'>Proteus仿真</font>程序设计
Proteus仿真STM32实现--DS18B20和LCD1602显示
proteus仿真stm32103r6,实现18B20温度值在1602上显示,可测量正负温度。程序及仿真工程已上传附件,利用proteus仿真18b20温度为0和-0.1时返回值均为零,新手上路,请多指教。使用proteus8.8版本进行仿真。原理图时序原理图单片机部分程序如下:#include "stm32f10x.h"#include "bsp-lcd1602.h"#include "delay.h"#include "sys.h"#include "ds18b20.h"#include <stdio.h>
发表于 2020-07-21
<font color='red'>Proteus仿真</font>STM32实现--DS18B20和LCD1602显示
MSP430电池电压采集Proteus仿真程序
单片机源程序如下:#include <MSP430x24x.h>#define uchar unsigned char#define uint unsigned intuchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,  //共阴数码管段选码表,无小数点                               0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,
发表于 2020-07-14
MSP430电池电压采集<font color='red'>Proteus仿真</font>程序
MSP403单片机+TLC5615+ADC0808恒流源Proteus仿真程序设计
|=4#define LCD1602_EN_0   P2OUT&=~4#define PWM_1   P2OUT|=8#define PWM_0   P2OUT&=~8/**************定义函数************************/void LCD_write_command(unsigned char command);//写入指令函数void LCD_write_dat( unsigned char dat);//写入数据函数void LCD_set_xy( unsigned char x, unsigned char y
发表于 2020-07-14
MSP403单片机+TLC5615+ADC0808恒流源<font color='red'>Proteus仿真</font>程序设计
MSP430F235 Proteus仿真软件中液晶显示器实验
<ms;i++)    for(j=0;j<1141;j++);}void write_com(uchar com){  RST_RS;  RST_RW;  P4OUT=com;  SET_E;  delay_us(5);  RST_E;}void write_dat(uchar dat){  SET_RS;  RST_RW;  P4OUT=dat;  SET_E;  delay_us(5);  RST_E;}void write_zfc(uchar*p){  while
发表于 2020-07-13
MSP430F235 <font color='red'>Proteus仿真</font>软件中液晶显示器实验
基于IAR环境下STM32F103单片机读取BME280程序
自己编写的基于IAR环境下STM32F103单片机读取BME280程序,没有太多的寄存器操作,简单易懂,可以直接调用,上电后只要对IO口初始化,调用函数Bme_ReadDigValue()读取校准寄存器参数并保存,再调用函数Bme_Init()初始化之后就可以用函数Bme_ReadStatus()读取传感器状态判断是否读取数据了,也可不判断传感器状态直接读取数据,读取数据直接调用函数ReadBme280()。单片机源程序:void ReadBme280(){        u32 value_ad;        double var1; 
发表于 2020-07-25
小广播
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved