你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1210|回复: 0

【原创】【MCU实战经验】+利用STM32的SPI的DMA功能扩展更多的输出端口

[复制链接]

50

主题

193

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-23
发表于 2014-4-16 14:09:41 | 显示全部楼层 |阅读模式
/*
利用STM32的SPI的DMA功能扩展更多的输出端口
芯片:  STM32F103xx  SN74AHC595 
固件库: ST官方 3.61版本
*/
 
#define GPIOB_SET_High(x)        GPIO_SetBits(GPIOB, (GPIO_Pin_0  24) & 0x000000FF;
        SPI2_Buffer_Tx[1] = (hc595_port_out >> 16) & 0x000000FF;
        SPI2_Buffer_Tx[2] = (hc595_port_out >> 8)  & 0x000000FF;
        SPI2_Buffer_Tx[3] = (hc595_port_out >> 0)  & 0x000000FF;
 
        DMA1_Channel4->CNDTR = 4;
        DMA1_Channel5->CNDTR = 4;
        DMA_Cmd(DMA1_Channel4, ENABLE);
        DMA_Cmd(DMA1_Channel5, ENABLE);               
}
 
 
演示例子
 
#include "stm32f10x.h"
#include "hw_config.h"
 
#define SPI2_Buffer_Size 4
 
__IO uint8_t SPI2_Buffer_Tx[SPI2_Buffer_Size];
__IO uint8_t SPI2_Buffer_Rx[SPI2_Buffer_Size];
 
/**
  ******************************************************************************
  * @file    STM32F10x_Driver_Template/Project/src/main.c 
  * @author  wjandsq@gmail.com
  * @version V1.0.2
  * @date    11/25/2013
  * @brief   Main program body
  ******************************************************************************
  * @copy
  *
  * Copyright (c) 2010-2013  http://www.daxia.com
  * 
  */ 
 
int main(void)
{
        RCC_Configuration();
        GPIO_Configuration();
        SPI_Configuration();
        NVIC_Configuration();
 
        while(1){
                    if(Flag_IO_Update == TRUE){
                        Flag_IO_Update = FALSE;
                        SPIx_DMA_Start(0xFFFFFFFF);// 扩展32端口输出
                }
        }
}
 
回复

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版