📄 main.c
字号:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#define BAUDRATE 9600
#define TLC2543_CS_SETB PORTB |= (1 << PB4)
#define TLC2543_CS_CLR PORTB &= ~(1 << PB4)
#define TLC2543_EOC_PIN (PINB & (1 << PB3))
#define VREF 4690
uint16_t g_dAdc = 0;
uint16_t g_dVolt = 0;
/*************************************************************************
*名称: DelayMS
*功能: 延时nms
*参数: 无
*返回: 无
*************************************************************************/
void Delay_MS(uint16_t dMS)
{
while(dMS--)
{
_delay_loop_2(300); // 延时1ms(粗略)
}
}
/************************************************************************
*名称: void USART_Init(void)
*功能: 串口初始化
*参数: 无
*返回: 无
************************************************************************/
void Usart_Init(void)
{
UCSRC = (1 << UCSZ1) | (1 << UCSZ0);
//异步操作,8位数据,无奇偶校验位,一个停止位
UBRRL = (F_CPU / BAUDRATE / 16 - 1) % 256; //设置波特率
UBRRH = (F_CPU / BAUDRATE / 16 - 1) / 256;
UCSRB = (1 << RXCIE) | (1 << RXEN) | (1 << TXEN);
//使能接收中断,使能接收,使能发送
}
/*************************************************************************
名称: void Usart_PutChar(uint8_t cTxData)
功能: 向串口发送一个字符
参数: cTxData 要发送的字符
返回: 无
*************************************************************************/
void Usart_PutChar(uint8_t cTxData)
{
while(!(UCSRA&(1 << UDRE))); //发送缓冲器是否准备就绪
UDR = cTxData; //将要发数据送数据缓冲器
}
/************************************************************************
*名称: Usart_PutString
*功能: 向串口发送字反
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -