基于STM32f030c8t6的spi,iic,串口的初始化源程序

51hei · 电子工程世界·2020-08-07 00:00

1.3k

stm32单片机源程序如下:

#include "spi.h"

#include "uart.h"

#include "stdio.h"

#include "delay.h"




void SPI1_Init(void)

{


RCC ->AHBENR         |=0X01<<18;

RCC ->APB2ENR |=0x01<<12;

//SCK(pb3) MOSI(pb5)配置为普通功能推挽输出

//端口模式设置

//模式----通用输出模式(01)

GPIOB->MODER &=~(0x03<<6 |0x03<<10);

GPIOB->MODER |=0X01<<6 | 0X01<<10;

//输出类型----推挽

GPIOB->OTYPER &= ~(0X01<<3 | 0X01<<5);

//输出速度----100M

GPIOB->OSPEEDR |=0x03<<6 | 0x03<<10;

//上下拉-----无上拉或下拉

GPIOB->PUPDR &=~(0x03<<6 |0x03<<10);


//MISO(pb4) 配置为浮空输入

GPIOB->MODER &=~(0X03<<8);  //pB4为输入模式

GPIOB->PUPDR &=~(0X03<<8);  //浮空输入

SCK_0;          //SCK空闲电平为低

}

//spi读写函数--模式0

//_data:待发送的数据,如果是接收模式,发送的数据则应该是0xff

//返回值:接收到的数据。如果是发送模式,返回值可以丢弃


u8 SPI1_ReadWriteByte(u8 _data)

{

u8 i;

for(i=0;i<8;i++)

{

if(_data&0x80)      //高位在前

{

MOSI_1;

}

else

{

MOSI_0;

}

SCK_1;

_data=_data<<1;

delay_us(2);


if(GPIOB ->IDR&0x01<<4)                           //判断收到的数据

{

_data=_data | 0X01;

}

SCK_0;

delay_us(2);

}

return _data;

}


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

广告

51hei · 电子工程世界·2020-08-07 00:00

1.3k
  • STM32
  • SP
  • 用户热评
    打开摩尔芯球APP,查看更多评论

    重大事件及时推送,更流畅的沉浸式阅读体验

    参与评论

    0/200字

    登录后即可发布评论

    发布评论

    请使用浏览器自带的分享按钮,
    将你这篇文章分享出去吧。
    +86
    获取验证码
    登 录

    邮箱登录

    未注册过的用户将直接为你创建摩尔账号