• 大小: 32KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-11
  • 语言: 其他
  • 标签: stm32  c语言  

资源简介

基于stm32控制器数模转换芯片DAC124s085底层驱动 实测可用!!!!!!!!!!!!!!!!!!!!!!!!!!!

资源截图

代码片段和文件信息

S#include “valve_dac.h“

void SPI2_Init()  //SPI2初始化
{
GPIO_InitTypeDef  GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);

GPIO_InitStructure.GPIO_Pin = SCLK_Pin;        //SCLK
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
GPIO_Init(SCLK_GPIO &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = SYNC_Pin;        //SYNC
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
GPIO_Init(SYNC_GPIO &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = MOSI_Pin;        //MOSI
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //浮空输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
GPIO_Init(MOSI_GPIO &GPIO_InitStructure);


}
/*channel表示通道 对应1:A、2:B、3:C、4:D。
* mode表示模式 分别为1234对应手册中模式1,模式2,模式3,模式4。
*/
void SPI2_WriteByte(u16 channelu16 modefloat open)
{
u16 data;
int cnt;
//15\14bit通道选择
data&=0x3FFF;
channel=channel-1;
channel<<=14;
data|=channel;
//13\12bit模式选择
data&=0xCFFF;
mode=mode-1;
mode<<=12;
data|=mode;

data&=0xF000;
open=open/VREF*4096;

data|=(u16)open;

SYNC_HIGH;
MOSI_HIGH;
SCLK_LOW;
delay_ms(1);
SYNC_LOW;
for(cnt=0;cnt<16;cnt++)
{
if(data&0x8000)
MOSI_HIGH;
else
MOSI_LOW;

SCLK_HIGH;
delay_ms(1);
data<<=1;
SCLK_LOW;
delay_ms(1);
}
SYNC_HIGH;
}



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1570  2018-10-24 10:49  DAC124s085\dac124s085.c
     文件         775  2018-05-11 21:15  DAC124s085\dac124s085.h
     文件       32540  2018-05-11 21:19  DAC124s085\readme.docx
     目录           0  2018-10-24 10:50  DAC124s085\

评论

共有 条评论