PIC18 串口通信
时间: 2024-04-30 12:15:51 浏览: 11
以下是PIC18F452和PIC18F45K80串口通信示例代码:
1. PIC18F452串口通信代码[^1]:
```c
#include <xc.h>
void USART_Init()
{
TRISC6 = 1; // 设置RC6为输入
TRISC7 = 1; // 设置RC7为输入
TXSTA = 0x24; // 异步通信,8位数据,BRGH=1 开启高速波特率
RCSTA = 0x90; // 使能串行通信
SPBRG = 9; // 设置波特率为9600
RCIE = 1; // 使能串口接收中断
GIE = 1; // 打开全局中断
PEIE = 1; // 使能外设中断
}
void main()
{
USART_Init();
while(1)
{
// 在这里编写串口通信的代码
}
}
```
2. PIC18F45K80串口1和串口2通信实例[^2]:
```c
#include <xc.h>
void USART1_Init()
{
TRISC6 = 1; // 设置RC6为输入
TRISC7 = 1; // 设置RC7为输入
TXSTA1 = 0x24; // 异步通信,8位数据,BRGH=1 开启高速波特率
RCSTA1 = 0x90; // 使能串行通信
SPBRG1 = 9; // 设置波特率为9600
RC1IE = 1; // 使能串口接收中断
GIE = 1; // 打开全局中断
PEIE = 1; // 使能外设中断
}
void USART2_Init()
{
TRISC6 = 1; // 设置RC6为输入
TRISC7 = 1; // 设置RC7为输入
TXSTA2 = 0x24; // 异步通信,8位数据,BRGH=1 开启高速波特率
RCSTA2 = 0x90; // 使能串行通信
SPBRG2 = 9; // 设置波特率为9600
RC2IE = 1; // 使能串口接收中断
GIE = 1; // 打开全局中断
PEIE = 1; // 使能外设中断
}
void main()
{
USART1_Init();
USART2_Init();
while(1)
{
// 在这里编写串口通信的代码
}
}
```