Вероятно, передав в нужном месте эту самую точку...FireProoF писал(а):как передать по UART число с точкой
Вопрос странный...
Вы не в курсе относительно форматирования вывода в sprintf или относительно того, что в терминал нужно передавать ASCII?
Вероятно, передав в нужном месте эту самую точку...FireProoF писал(а):как передать по UART число с точкой
Код: Выделить всё
void Demo_GyroReadTempRaw (uint8_t* pfData, uint8_t* pfDataSign)
{
uint8_t rawData = 0;
int i =0;
L3GD20_Read(&rawData,L3GD20_OUT_TEMP_ADDR,1);
if(((uint8_t)rawData > 0x7F) == 0) { *pfDataSign = 0;}
else
{
*pfDataSign = 1;
rawData &= 0x7F;
rawData = 0x7F - rawData;
}
*pfData = rawData;
}Всё просто - https://www.yandex.ru/yandsearch?clid=9 ... 63204370.1FireProoF писал(а):Я просто не понял про высокоимпедансный вход.
Код: Выделить всё
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;//включить тактирование альтернативных функций
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;//включить тактирование порта А
//вывод управления SS: выход двухтактный, общего назначения,50MHz
GPIOA->CRL |= GPIO_CRL_MODE4; //
GPIOA->CRL &= ~GPIO_CRL_CNF4; //
GPIOA->BSRR = GPIO_BSRR_BS4; //
//вывод SCK: выход двухтактный, альтернативная функция, 50MHz
GPIOA->CRL |= GPIO_CRL_MODE5; //
GPIOA->CRL &= ~GPIO_CRL_CNF5; //
GPIOA->CRL |= GPIO_CRL_CNF5_1; //
//вывод MISO: вход цифровой с подтягивающим резистором, подтяжка к плюсу
GPIOA->CRL &= ~GPIO_CRL_MODE6; //
GPIOA->CRL &= ~GPIO_CRL_CNF6; //
GPIOA->CRL |= GPIO_CRL_CNF6_1; //
GPIOA->BSRR = GPIO_BSRR_BS6; //
//вывод MOSI: выход двухтактный, альтернативная функция, 50MHz
GPIOA->CRL |= GPIO_CRL_MODE7; //
GPIOA->CRL &= ~GPIO_CRL_CNF7; //
GPIOA->CRL |= GPIO_CRL_CNF7_1; //
//настроить модуль SPI
RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //подать тактирование
SPI1->CR2 = 0x0000; //
SPI1->CR1 = SPI_CR1_MSTR; //контроллер должен быть мастером,конечно
SPI1->CR1 |= SPI_CR1_BR_0; //для начала зададим маленькую скорость
SPI1->CR1 |= SPI_CR1_SSI;
SPI1->CR1 |= SPI_CR1_SSM;
SPI1->CR1 |= SPI_CR1_SPE; //разрешить работу модуля SPIКод: Выделить всё
GPIO_InitTypeDef gpio;
SPI_InitTypeDef spi;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
//GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_5);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_5);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_5);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_5);/**/
gpio.GPIO_Mode = GPIO_Mode_AF;
gpio.GPIO_Pin = /*GPIO_Pin_12 | */GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;//GPIO_PuPd_DOWN;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio);
gpio.GPIO_Mode = GPIO_Mode_OUT;
gpio.GPIO_Pin = GPIO_Pin_12;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_DOWN;//GPIO_PuPd_DOWN;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio);
SPI_I2S_DeInit(SPI2);
spi.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
spi.SPI_DataSize = SPI_DataSize_8b;
spi.SPI_CPOL = SPI_CPOL_Low;
spi.SPI_CPHA = SPI_CPHA_1Edge;
spi.SPI_NSS = SPI_NSS_Soft;
spi.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;
spi.SPI_FirstBit = SPI_FirstBit_MSB;
spi.SPI_CRCPolynomial = 7;
spi.SPI_Mode = SPI_Mode_Master;
SPI_Init(SPI2, &spi);
/* Configure the RX FIFO Threshold */
SPI_RxFIFOThresholdConfig(SPI2, SPI_RxFIFOThreshold_QF);
SPI_Cmd(SPI2, ENABLE);Я понимаю, тема секретная,Studentos писал(а): В цикле чтения при обмене данными в шине микропроцессорной системы присутствуют такие вещи как sync, din, rply. Что это, отдельные разряды шины и для чего ?