}
else
{
*_ucsra = 0;
baud_setting = (F_CPU / 8 / baud - 1) / 2;
}
// assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register)
*_ubrrh = baud_setting >> 8;
*_ubrrl = baud_setting;
sbi(*_ucsrb, _rxen);
sbi(*_ucsrb, _txen);
sbi(*_ucsrb, _rxcie);
}
2. if (Serial.available())
该语句用来判断Arduino串口是否收到数据,函数Serial.available( )返回值为int型,不带参数。函数原型如下:
int HardwareSerial::available(void)
{
return (RX_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % RX_BUFFER_SIZE;
}
3. brightness = Serial.read();
该语句的功能是将串口数据读入到变量brightness中,函数Serial.read( )也不带参数,返回值为串口数据,int型。arduino串口函数原型如下:
int HardwareSerial::read(void)
{
// if the head isnt ahead of the tail, we dont have any characters
if (_rx_buffer->head == _rx_buffer->tail)
{
return -1;
}
else
{
unsigned char c = _rx_buffer->buffer[_rx_buffer->tail];
_rx_buffer->tail=(_rx_buffer->tail + 1) % RX_BUFFER_SIZE;
return c;
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-30283-2.html
米国出了就没有放弃对中国在政治上