标题: 基于STM32f030c8t6的spi,iic,串口的初始化源程序 [打印本页]

作者: 13692166934    时间: 2018-8-30 15:18
标题: 基于STM32f030c8t6的spi,iic,串口的初始化源程序
串口采用控制器,IIC与spi采用了模拟时序


stm32单片机源程序如下:
  1. #include "spi.h"
  2. #include "uart.h"
  3. #include "stdio.h"
  4. #include "delay.h"



  5. void SPI1_Init(void)
  6. {

  7.         RCC ->AHBENR         |=0X01<<18;
  8.         RCC ->APB2ENR |=0x01<<12;
  9.        
  10.         //SCK(pb3) MOSI(pb5)配置为普通功能推挽输出
  11.         //端口模式设置
  12.         //模式----通用输出模式(01)
  13.         GPIOB->MODER &=~(0x03<<6 |0x03<<10);
  14.         GPIOB->MODER |=0X01<<6 | 0X01<<10;
  15.         //输出类型----推挽
  16.         GPIOB->OTYPER &= ~(0X01<<3 | 0X01<<5);       
  17.         //输出速度----100M
  18.         GPIOB->OSPEEDR |=0x03<<6 | 0x03<<10;
  19.         //上下拉-----无上拉或下拉
  20.         GPIOB->PUPDR &=~(0x03<<6 |0x03<<10);
  21.        

  22.         //MISO(pb4) 配置为浮空输入
  23.         GPIOB->MODER &=~(0X03<<8);  //pB4为输入模式
  24.         GPIOB->PUPDR &=~(0X03<<8);  //浮空输入
  25.        
  26.         SCK_0;          //SCK空闲电平为低
  27. }
  28. //spi读写函数--模式0
  29. //_data:待发送的数据,如果是接收模式,发送的数据则应该是0xff
  30. //返回值:接收到的数据。如果是发送模式,返回值可以丢弃

  31. u8 SPI1_ReadWriteByte(u8 _data)
  32. {
  33.         u8 i;
  34.         for(i=0;i<8;i++)
  35.         {
  36.        
  37.                 if(_data&0x80)      //高位在前
  38.                 {
  39.                         MOSI_1;
  40.                 }
  41.                 else
  42.                 {
  43.                         MOSI_0;
  44.                 }
  45.                 SCK_1;
  46.                 _data=_data<<1;
  47.                 delay_us(2);

  48.        
  49.                 if(GPIOB ->IDR&0x01<<4)                           //判断收到的数据
  50.                 {
  51.                         _data=_data | 0X01;
  52.                 }
  53.                 SCK_0;
  54.                
  55.                 delay_us(2);
  56.         }
  57.         return _data;
  58. }


复制代码

所有资料51hei提供下载:
串口spii2c.zip (4.63 KB, 下载次数: 156)



作者: 13692166934    时间: 2018-11-5 11:38
SPI控制器的也搞好了,亲测可以使用,可以驱动OLED和w25q80

spi控制器.zip

1.93 KB, 下载次数: 60, 下载积分: 黑币 -5


作者: 13692166934    时间: 2019-2-28 10:08
自己顶自己
作者: 汤博    时间: 2019-7-1 15:55
就那样

作者: 728996695    时间: 2020-7-7 17:12
请问有这款芯片的NRF24L01配置的程序嘛
作者: 197988275    时间: 2020-10-23 17:48
全部寄存器,感觉没啥用




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1