打印
[STM8]

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

[复制链接]
809|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gampt|  楼主 | 2017-4-19 22:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 gampt 于 2017-4-19 22:28 编辑

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


STM8S105K6芯片的程序如下所示
SPI接口初始化

SPI写数据

下面是测试程序 输出电压不正常0.5V的变化 而且没有规律

沙发
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

粉丝