- 浏览: 299744 次
- 性别:
- 来自: 广州
文章分类
/*---------------------------------------------------------------------------- * RL-ARM - FlashFS *---------------------------------------------------------------------------- * Name: SPI_STM32F103.c * Purpose: Serial Peripheral Interface Driver for ST STM32F103 * Rev.: V4.12 *---------------------------------------------------------------------------- * This code is part of the RealView Run-Time Library. * Copyright (c) 2004-2010 KEIL - An ARM Company. All rights reserved. *---------------------------------------------------------------------------*/ #include <File_Config.h> #include "stm32f10x.h" /* SPI_SR - bit definitions. */ #define RXNE 0x01 #define TXE 0x02 #define BSY 0x80 /*---------------------------------------------------------------------------- * SPI Driver Functions *---------------------------------------------------------------------------- * Required functions for SPI driver module: * - void spi_init () * - void spi_ss (U32 ss) * - U8 spi_send (U8 outb) * - void spi_hi_speed (BOOL on) *---------------------------------------------------------------------------*/ /*--------------------------- spi_init --------------------------------------*/ void spi_init (void) { /* Initialize and enable the SSP Interface module. */ /* SPI1_NSS is GPIO, output set to high. */ GPIOA->BSRR = 0x00000010; /* SPI1_SCK, SPI1_MISO, SPI1_MOSI are SPI pins. */ GPIOA->CRL &= ~0xFFFF0000; GPIOA->CRL |= 0xB8B30000; /* Card Sensor PA.8 input */ /* 1 = NO Card, 0 = Card plugged. */ GPIOA->CRH &= ~0x0000000F; GPIOA->CRH |= 0x00000004; /* Enable SPI in Master Mode, CPOL=0, CPHA=0. */ /* Clock speed = fPCLK1 / 256 = 280 kHz at 72 MHz PCLK1 clk. */ SPI1->CR1 = 0x037C; SPI1->CR2 = 0x0000; } /*--------------------------- spi_hi_speed ----------------------------------*/ void spi_hi_speed (BOOL on) { /* Set a SPI clock to low/high speed for SD/MMC. */ if (on == __TRUE) { /* Max. 25 MBit used for Data Transfer. */ /* Actual setting 18 MBits. */ SPI1->CR1 &= ~0x0030; SPI1->CR1 |= 0x0008; } else { /* Max. 400 kBit used in Card Initialization. */ /* Actual setting 280 kBits. */ SPI1->CR1 |= 0x0038; } } /*--------------------------- spi_ss ----------------------------------------*/ void spi_ss (U32 ss) { /* Enable/Disable SPI Chip Select (drive it high or low). */ GPIOA->BSRR = ss ? 0x00000010 : 0x00100000; } /*--------------------------- spi_send --------------------------------------*/ U8 spi_send (U8 outb) { /* Write and Read a byte on SPI interface. */ /* Wait if TXE cleared, Tx FIFO is full. */ while (!(SPI1->SR & TXE)); SPI1->DR = outb; /* Wait if RNE cleared, Rx FIFO is empty. */ while (!(SPI1->SR & RXNE)); return (SPI1->DR); } /*---------------------------------------------------------------------------- * end of file *---------------------------------------------------------------------------*/
- ff.zip (675.7 KB)
- 下载次数: 4
发表评论
-
stm8 stm32 nop
2012-09-21 09:15 1445stm8s103f3 0x8000-0x9FFF: 0x9D ... -
CoreSight Debug and Trace Connectors
2012-09-17 09:18 926CoreSight Debug and Trace Conne ... -
DM9006 linux driver
2012-08-15 13:02 1604DM9006 linux driver http://www ... -
hsb_to_rgb
2012-06-20 16:33 0static void hsb_to_rgb(uint1 ... -
stm32 jpeg
2012-05-08 10:06 0jpeg -
STM32和STM8各系列选型表
2012-04-24 13:40 1239STM32和STM8各系列选型表 -
研华推出基于Freescale i.MX53的ARM核心板
2012-02-10 13:36 1101http://www.eepw.com.cn/article/ ... -
helix
2011-11-25 16:34 0helix -
audio dsp
2011-11-07 16:39 0http://alldsp.com/index.html ... -
stm32 softreset
2011-11-07 10:07 1078SCB->AIRCR = 0x05FA0004; -
VS1003B Debug
2011-10-06 08:50 0VS1003B 在SM_SDISHARE模式下不能连续soft ... -
stm32 中断号 for IAR PowerPac
2011-09-20 16:53 208600 DCD __intial_s ... -
hashtable for DM9000A
2011-09-09 10:23 1035unsigned long const Crc32Tab ... -
DM9000A for KEIL RL-NET driver
2011-08-22 09:05 1957DM9000AEP 在KEIL RL-NET下的驱动程序,从u ... -
DM9000
2011-08-02 11:42 0/*========================== ... -
用DAC产生正弦波
2011-06-29 14:34 1529MCU: C8051F330, Fmax: 23KHz ... -
STM32 MP3
2011-06-28 09:15 1047http://bbs.21ic.com/viewthread. ... -
stm32 lib
2011-04-16 22:00 1203stm32
相关推荐
使用MDK514进行STM32F103开发时,还需要了解基本的C语言编程、嵌入式系统概念、中断服务程序的编写以及了解STM32的外设接口。此外,理解CubeMX工具如何生成初始化代码也是很有帮助的,它可以自动配置STM32的外设和...
STM32CubeMX is mandatory for use of CMSIS-Driver and MDK-Middleware. This packs contains a subset of the files from STM32Cube_FW_F3 version 1.9.0 (Drivers, STCube documentation and fonts). Updated ...
在MDK(Keil uVision)环境下开发基于STM32微控制器的项目时,串口通信是调试和数据传输的重要手段。本程序模板主要涉及如何配置串口以及实现串口打印输出,这对于理解和掌握STM32的外设使用至关重要。 首先,我们...
MDK STM32F105/107 Keil仿真是一个重要的开发过程,尤其对于使用STM32F105或STM32F107微控制器的开发者来说。通常,Keil MDK(Microcontroller Development Kit)是ARM处理器广泛应用的集成开发环境,它包含了编译器...
Keil uVision5(简称Keil5 MDK)是一款强大的集成开发环境(IDE),特别适合于C/C++语言在微控制器上的开发,支持多种MCU系列,包括STM32F10x。在这个资源中,你将找到用于在Keil5 MDK下开发STM32F10x应用的固件库和...
MDK(Keil Microcontroller Development Kit)是ARM公司授权的嵌入式开发工具,广泛用于STM32等微控制器的程序开发。STM32是一款基于ARM Cortex-M内核的32位微控制器,其强大的性能和丰富的外设接口使其在嵌入式领域...
标题“MDK5C51、STM32双版本.rar”指的是一个压缩包,其中包含了支持Keil C51和MDK(Microcontroller Development Kit)STM32开发的两个版本的工具。MDK5是ARM公司开发的一款强大的嵌入式微控制器开发环境,尤其适用...
Added source code for: STM32L476G-Disco QSPI, STM32L4P5G-DK OSPI, STM32L4P5G-DK PSRAM STM32L4R9I-DK PSRAM, STM32L4R9I-DK OSPI1 and STM32L4R9I-EVAL OSPI. Added PSRAM external Loader support for STM32...
STM32最新MDK支持包
STM32开发工具 KEIL_MDK开发环境STM32开发工具 KEIL_MDK开发环境STM32开发工具 KEIL_MDK开发环境STM32开发工具 KEIL_MDK开发环境STM32开发工具 KEIL_MDK开发环境STM32开发工具 KEIL_MDK开发环境STM32开发工具 KEIL_...
本资源提供的是一套STM32针对三菱FX3U PLC的源代码,适合在MDK(Keil uVision)环境中编译使用。MDK是由ARM公司开发的嵌入式软件开发工具,支持多种ARM架构的微控制器。 源码兼容MDK的两个主要版本:MDK4和MDK5。...
STM32全系列 Keil MDK pack离线包 注:由于上传大小限制,除了F0和F1的包,其他的提供链接通过百度云下载。 包括以下包,当前最新版本(20200115) Keil.STM32F0xx_DFP.2.0.0.pack Keil.STM32F1xx_DFP.2.3.0....
Added global define USE_FULL_LL_DRIVER to component ::Device:STM32Cube LL:Common. Added debugProbe board description. Device Support: Updated SVD files and documentation. Reworked device RAM size. ...
STM32F1pack包是针对STM32F1系列微控制器的Keil MDK开发支持包。 这个软件包为开发者在使用Keil MDK(Microcontroller Development Kit)进行编程时提供了必要的固件库、设备驱动程序以及一系列中间件和示例代码,...
关于MDK软件在进行STM32单片机模拟仿真时遇到的问题及其解决方法,本文将详细介绍并分析各种常见问题,并给出相应的解决方案,以期帮助用户在使用MDK软件进行开发时能更加顺利地进行模拟仿真测试。 首先,我们需要...
Keil Mdk 编译器 添加stm32f030x系列芯片的升级文件。 Keil 中Device中无stm32f030x系列芯片,可用此文件添加 包括stm32f030c4 stm32f030c6 stm32f030f4 stm32f030k6 stm32f030r8
因为基于cortex系列芯片采用的内核都是相同的,区别主要为核外的片上的差异(片上外设主要有芯片生产商来定)。这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同芯片厂商生产的cortex微控制器...
总结来说,这个压缩包包含的MDK532.EXE是Keil的MDK532开发工具,而Keil.STM32F1xx_DFP.2.3.0.pack是针对STM32F1系列的设备支持包,它们共同构成了一个完整的STM32F1系列嵌入式开发环境。对于需要进行STM32F1开发的...
STM32F0xx_DFP.2.1.0 STM32F1xx_DFP.2.3.0 STM32F2xx_DFP.2.9.0 STM32F3xx_DFP.2.1.0 STM32F4xx_DFP.2.14.0 STM32F7xx_DFP.2.13.0 STM32W1xx_DFP.1.0.0 ARM.CMSIS.5.7.0 CMSIS-Driver.2.6.1 ...