Dicas
Dicas referente ao projeto 1
Comunicação PC (python) -> microcontrolador
Umas das rubricas da entrega pede que o computador envie dados para o microcontrolador, esse envio é feito da mesma maneira do recebimento dos dados, via a porta virtual COM gerado na comunicação com o bluetooth.
python
Para enviar um dado do python para a porta COM e então para o bluetooth utilize a função self.ser.write()
Tip
Codifique em ASCII o dado a ser enviado pela serial em ASCII:'hello'.encode('ascii')
ou em byte: b'h'
.
Potenciômetro Logaritmico (0% ~ 100%)
x = round(((data0 * (-65.25) - 255*65.25) /255)+65.25,2)
100 -> 4095
0 -> 0
microcontrolador
Para receber um byte no firmware devemos usar a função usart_read(USART_COM, &rx)
onde o primeiro parâmetro é a USART a ser lida e o segundo uma variável para salvar o valor, a função retorna 0
caso tenha lido um byte, conforme descrição da documentação a seguir:
/**
* \brief Read from USART Receive Holding Register.
*
* \note Before reading user should check if rx is ready.
*
* \param p_usart Pointer to a USART instance.
* \param c Pointer where the one-byte received data will be stored.
*
* \retval 0 on success.
* \retval 1 if no data is available or errors.
*/
uint32_t usart_read(Usart *p_usart, uint32_t *c) { .... }
Para verificar se existe um byte a ser lido na USART utilize a função a seguir:
/**
* \brief Check if the received data are ready.
* Check if Data have been received and loaded into USART_RHR.
*
* \param p_usart Pointer to a USART instance.
*
* \retval 1 Some data has been received.
* \retval 0 No data has been received.
*/
uint32_t usart_is_rx_ready(Usart *p_usart) {...}