91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-24
  • 語言: 其他
  • 標簽: AVR??串口例程??

資源簡介

馬潮老師 AVR串口例程代碼 Atmega16

資源截圖

代碼片段和文件信息

/*****************************************************
File?name???????????:?demo_14_1.c
Chip?type???????????:?ATmega16L
Program?type????????:?Application
Clock?frequency?????:?4.000000?MHz
Memory?model????????:?Small
External?SRAM?size??:?0
Data?Stack?size?????:?256
*****************************************************/
#include?

#define?UART_BEGIN_STX??0xBB
#define?UART_END_STX????0xEE

#define?FRAMING_ERROR?(1<#define?PARITY_ERROR?(1<#define?DATA_OVERRUN?(1<#define?DATA_REGISTER_EMPTY?(1<#define?RX_COMPLETE?(1<
#define?TX_BUFFER_SIZE?5
unsigned?char?tx_buffer[TX_BUFFER_SIZE];?????????//?USART?Transmitter?buffer
unsigned?char?tx_wr_indextx_rd_indextx_counter;

//?USART?Transmitter?interrupt?service?routine
interrupt?[USART_TXC]?void?usart_tx_isr(void)
{
????if?(tx_counter)
????{
????????--tx_counter;
????????UDR=tx_buffer[tx_rd_index];
????????if?(++tx_rd_index?==?TX_BUFFER_SIZE)?tx_rd_index=0;
????}
}

void?putchar(unsigned?char?c)
{
????while?(tx_counter?==?TX_BUFFER_SIZE);
????#asm(“cli“)
????if?(tx_counter?||?((UCSRA?&?DATA_REGISTER_EMPTY)==0))
????{
????????tx_buffer[tx_wr_index]=c;
????????if?(++tx_wr_index?==?TX_BUFFER_SIZE)?tx_wr_index=0;
????????++tx_counter;
????}
????else
????????UDR=c;
????#asm(“sei“)
}

#define?RX_BUFFER_SIZE?5
unsigned?char?rx_buffer[RX_BUFFER_SIZE];?????//?USART?Receiver?buffer
unsigned?char?rx_counter;
bit?Uart_RecvFlag;

//?USART?Receiver?interrupt?service?routine
interrupt?[USART_RXC]?void?usart_rx_isr(void)
{
????unsigned?char?statusdata;
????status?=?UCSRA;
????data?=?UDR;
????if?(!Uart_RecvFlag)?????//?判斷是否允許接收一個新的數據包
????{
????????if?((status?&?(FRAMING_ERROR?|?PARITY_ERROR?|?DATA_OVERRUN))==0)
????????{
????????????rx_buffer[rx_counter]?=?data;
????????????rx_counter++;
????????????switch?(rx_counter)
????????????{
????????????????case?1:?????//?檢驗起始字符
???????

評論

共有 條評論