Комментарии 19
P.S. не забывайте настроить яркость дисплея заранее.
Контрастность вообще-то.
Кстати а зачем тут:
uint8_t lo = (data << 4) & 0xF0;
накладывать битовую маску?
+3
Видимо, мышечная память с правым сдвигом и знаковым битом, хотя, двигать signed вещи изначально не очень здравая идея.
+1
А где оно объявлено signed?
0
для сдвига влево знак не важен.
0
Код совсем разный для без-знакового и знакового числа, поэтому без-знаковое обязательно к применению.
0
В данном случае нужен просто битовый результат. А тут он будет идентичен:
uint8_t lo = (uint8_t )data << 4
int8_t lo = (int8_t)data << 4
uint8_t lo = (uint8_t )data << 4
int8_t lo = (int8_t)data << 4
0
Да, результаты совпадают, но посмотрите на код в ассемблере
для без-знакового и
для знакового байта.
ldd r24,Y+3
swap r24
andi r24,lo8(-16)
std Y+3,r24
для без-знакового и
ldd r24,Y+3
mov __tmp_reg__,r24
lsl r0
sbc r25,r25
swap r24
swap r25
andi r25,0xf0
eor r25,r24
andi r24,0xf0
eor r25,r24
std Y+3,r24
для знакового байта.
0
хаха, не нужно, видимо на автомате поставил
0
На всякий случай.
Кстати, я бы в обратном порядке сделал — сначала маску 0x0F, а потом уже сдвиг.
Кстати, я бы в обратном порядке сделал — сначала маску 0x0F, а потом уже сдвиг.
0
Так все подробно описано. Отличное руководство начинающим!
0
Можно нескромный вопрос: какой вообще смысл в подобных «статьях»? «Возьмем калокуб, щелкнем пять галочек и радуемся».
Чем-то напоминает инструкцию по сборке ЛЕГО.
Где оригинальность? Где вообще какая-то польза?
Чем-то напоминает инструкцию по сборке ЛЕГО.
Где оригинальность? Где вообще какая-то польза?
-3
А зачем UART через USB пробрасывать, если можно поднять тот же CDC через уже подключенный USB? Благо в cubemx это делается очень просто.
+1
Зачем UART, зачем CDC? выбрасывайте эти ардуиновские замашки. У вас для вывода отладочной информации есть все из коробки (из вашей отладочной платы) — пользуйте SWV.
+2
спасибо
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Дружим STM32 с LCD дисплеем 1604 по I2C шине (библиотека HAL)