stm32f103c8t6不能读取ltc2400的数据
#include <string.h>//B5片选
//B6数据
//B7时钟
#include "APP.h"
#include "BSP.h"
#include "BSP_tim.h"
#include "HW_Config.h"
#define SCK_L GPIO_ResetBits(GPIOB, GPIO_Pin_7)
#define SCK_H GPIO_SetBits(GPIOB, GPIO_Pin_7)
#define GETSDO GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6)
#define CS_L GPIO_ResetBits(GPIOB, GPIO_Pin_5)
#define CS_H GPIO_SetBits(GPIOB, GPIO_Pin_5)
int VInit( void )
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_6;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_5 | GPIO_Pin_7;
GPIO_Init(GPIOB, &GPIO_InitStructure);
return 0;
}
int main(void)
{
uint32_t count = 0;
uint32_t len = 0;
uint8_t a=0,b=0,c=0,d=0;
USB_Config();
VInit();
USB_TxWrite("initdone", 8);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
USB_TxWrite("yanshi", 6);
zh: len=0;
CS_H;
SCK_L;
CS_L;
for(count=0;count<32;count++)
{
len<<=1;
SCK_H;
len|=GETSDO;
SCK_L;
}
CS_H;
a=(len&&0xFF000000)>>24;
b=(len&&0xFF0000)>>16;
c=(len&&0xFF00)>>8;
d=(len&&0xFF)>>0;
print8(a);
USB_TxWrite("", 2);
print8(b);
USB_TxWrite("", 2);
print8(c);
USB_TxWrite("", 2);
print8(d);
USB_TxWrite("", 2);
USB_TxWrite("\r\n", 2);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
for(count=0;count<60000;count++);
goto zh;
}
USB部分用了网上的代码 直接在usb接口输出数据
我把adc的FO接到vcc了 鄙视这论坛没有图片上传功能 还要搞啥图床 我把头像改成ltc2400框图了大家可以看下 输出是
00000000000000000000000000000001
00000000000000000000000000000001
00000000000000000000000000000001
00000000000000000000000000000001
无限循环 模拟输入接基准输出或者地都不会变 补一下将字节以二进制打印的print8函数
int printf8(uint8_t jiba)
{
int daa;
for(daa=7;daa>=0;daa--)
{
if((jiba>>daa))
USB_TxWrite("1", 1);
else
USB_TxWrite("0", 1);
}
return 0;
} 这个代码有很多错误,已改好,能获取数据了,不过数据有很大问题正在修正
页:
[1]