[STM8] STM8+TLC5615数模转换程序工作不正常

[复制链接]
1302|3
 楼主| gampt 发表于 2017-4-19 22:26 | 显示全部楼层 |阅读模式
本帖最后由 gampt 于 2017-4-19 22:28 编辑

折腾了好几天了 大家帮忙给看看 实在不行就换模拟SPI了
TLC5615是10位DA芯片 芯片结构如下所示

2017-04-19_222247.png
STM8S105K6芯片的程序如下所示
SPI接口初始化
2017-04-19_222111.png
SPI写数据
2017-04-19_222127.png
下面是测试程序 输出电压不正常0.5V的变化 而且没有规律
2017-04-19_222215.png
 楼主| gampt 发表于 2017-4-20 15:29 | 显示全部楼层
mintspring 发表于 2017-4-20 16:29 | 显示全部楼层

以下驱动是SPI2的应用


static void MMC_SPI_Config(void)
{
SPI_DeInit();

GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST);

GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_IN_FL_NO_IT);

GPIO_Init(GPIOE, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);

SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_256, SPI_MODE_MASTER
, SPI_CLOCKPOLARITY_HIGH, SPI_CLOCKPHASE_2EDGE,
SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT,0x00);
SPI_Cmd(ENABLE);
}

static
UCHAR SPI_ReadWrite_Byte(unsigned char byte)
{
/* Loop while DR register in not emplty */
while(SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET);

/* Send byte through the SPI1 peripheral */
SPI_SendData(byte);

/* Wait to receive a byte */
while(SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET);

/* Return the byte read from the SPI bus */
return SPI_ReceiveData();
}


wahahaheihei 发表于 2017-4-20 19:58 | 显示全部楼层
是不是这个芯片的操作指令不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:瞎折腾

18

主题

190

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部