Пт сен 06, 2019 20:38:36
#define SPI_Tx while (SPI1->SR & SPI_SR_BSY); SPI1->DR = (uint16_t)
SPI_Tx (data|0x00);
Error[Pe018]: expected a ")" D:\My designs\PJT\IAR\Nokia_1616.c 101
SPI_Tx 0x11;
#define SPI_Tx(cd) while (SPI1->SR & SPI_SR_BSY); SPI1->DR = (uint16_t)cd
SPI_Tx(0x11);
Пт сен 06, 2019 21:38:48
#define SPI_Tx(cd) while (SPI1->SR & SPI_SR_BSY); SPI1->DR = (uint16_t)(cd)
static inline void SPI_Tx(uint32_t cd)
{
while (SPI1->SR & SPI_SR_BSY);
*(uint16_t *)&SPI1->DR = cd;
}
if(data==0xAA)
SPI_Tx(data|0x01);
else
SPI_Tx(data|0x02);
#define SPI_Tx(cd) do{while (SPI1->SR & SPI_SR_BSY); SPI1->DR = (uint16_t)(cd);}while(false)
Пт сен 06, 2019 21:42:23
Сб сен 07, 2019 05:36:29
template<typename T>
static inline void SPI_Tx(uint32_t data)
{
while (SPI1->SR & SPI_SR_BSY);
*(T*)&SPI1->DR = data;
}
template<typename T>
static inline void SPI_Tx(uint32_t data)
{
static_assert(std::is_same_v<T,uint8_t> || std::is_same_v<T,uint16_t>, "User fool");
while (SPI1->SR & SPI_SR_BSY);
*(T*)&SPI1->DR = data;
}
if(x>255)
SPI_Tx<uint16_t>(x);
else
SPI_Tx<uint8_t>(x);
Сб сен 07, 2019 08:49:14
Сб сен 07, 2019 09:08:44
static inline void SPI_Tx(uint32_t cd)
{
while (SPI1->SR & SPI_SR_BSY);
*(uint16_t *)&SPI1->DR = cd;
}
static inline void SPI_Tx(uint32_t cd)
{
while (SPI1->SR & SPI_SR_BSY) {}
*(volatile uint16_t*)&SPI1->DR = cd;
}
Сб сен 07, 2019 10:34:15
Сб сен 07, 2019 11:21:10
Сб сен 07, 2019 11:26:41
enum class STM32F1_PinMode : uint32_t
{
NotDefined = 0x12345678,
// ODR[4] : CNF[3:2] : MODE[1:0]
Floating = 0b0'01'00, // 0x04
PullUp = 0b1'10'00, // 0x18
PullDown = 0b0'10'00, // 0x08
// Analog mode
Analog = 0b0'00'00, // 0x00
// Output Open Drain modes
OpenDrain_LowSpeed = 0b0'01'10, // 0x06
OpenDrain_MediumSpeed = 0b0'01'01, // 0x05
OpenDrain_HighSpeed = 0b0'01'11, // 0x07
// Output Push-Pull modes
PushPull_LowSpeed = 0b0'00'10, // 0x02
PushPull_MediumSpeed = 0b0'00'01, // 0x01
PushPull_HighSpeed = 0b0'00'11, // 0x03
// Alternate Function Open Drain modes
AF_OpenDrain_LowSpeed = 0b0'11'10, // 0x0E
AF_OpenDrain_MediumSpeed = 0b0'11'01, // 0x0D
AF_OpenDrain_HighSpeed = 0b0'11'11, // 0x0F
// Alternate Function Push-Pull modes
AF_PushPull_LowSpeed = 0b0'10'10, // 0x0A
AF_PushPull_MediumSpeed = 0b0'10'01, // 0x09
AF_PushPull_HighSpeed = 0b0'10'11 // 0x0B
};
int main()
{
[](){[](){[](){[](){[](){}();}();}();}();}();
for(;;);
}
Сб сен 07, 2019 11:33:21
Сб сен 07, 2019 12:00:51
Сб сен 07, 2019 12:40:10
Сб сен 07, 2019 12:45:05
Сб сен 07, 2019 13:18:49
Сб сен 07, 2019 13:26:13
Сб сен 07, 2019 14:21:48
Пн сен 09, 2019 05:21:30
*(T*)&SPI1->DR = data;
Пн сен 09, 2019 13:38:07
*(uint8_t *)&SPI1->DR = 0xA0;
*(uint8_t *)&SPI1->DR = 0xA1;
*(uint8_t *)&SPI1->DR = 0xA2;
*const_cast<uint8_t *>((uint8_t *)&SPI1->DR) = 0xA3;
*const_cast<uint8_t *>((uint8_t *)&SPI1->DR) = 0xA4;
*const_cast<uint8_t *>((uint8_t *)&SPI1->DR) = 0xA5;
*(volatile uint8_t *)&SPI1->DR = 0xA6;
*(volatile uint8_t *)&SPI1->DR = 0xA7;
*(volatile uint8_t *)&SPI1->DR = 0xA8;
Пн сен 09, 2019 14:11:10
Пн сен 09, 2019 14:20:25