- 打卡等级:偶尔看看III
- 打卡总天数:32
- 最近打卡:2025-04-30 08:40:45
已绑定手机
超级版主
- 积分
- 1629
|
发表于 2025-3-6 13:58:54
|
显示全部楼层
第4集 串口部分库函数
#include <AI8051U.H>
#include "io_int.h"
#include "set_io.h"
#include "set_uart.h"
#include "stdio.h"
int num = 0;
char str[5] = {'a','b','c','d','e'};
void main(void)
{
EAXFR = 1; //拓展寄存器访问使能
CKCON = 0; //设置访问片内扩展的xdata部分速度为最快
WTST = 0; //设置取程序代码不等待,以最快速度运行
//需要初始化部分的程序
//设置P36、P37端口为准双向口,推荐:TXD(推挽输出)、RXD(高阻输入+4K内部电阻上拉)
set_io_mode(pu_mode,Pin36,Pin37,Pin42,Pin43,Pin_End);
//不同波特率的串口使用,以及printf函数的使用
set_uart_mode(Uart1, "115200bps", Uart1_P36_7, Use_Timerx, Uart_End);
//set_uart_mode(Uart1, Uart1_P36_7, "115200bps",Uart_End);
set_uart_mode(Uart2, Uart2_P42_3, "9600bps", Use_Timerx, Uart_End);
//设置I/O中断,P34按键,按下时发送一个字符串
set_io_mode(hz_mode, Pin34, Pin_End);
set_io_mode(en_pur, Pin34, Pin_End);
set_ioint_mode(falling_edge_mode, Pin34, Pin_End);
set_ioint_mode(en_int, Pin34, Pin_End);
EA = 1; //打开总中断
while(1)
{
if(get_ioint_state(Pin34))
{
uart_printf(Uart1, "uart1,hello!\r\n");
uart_printf(Uart2, "uart2,hello!\r\n");
}
if(get_uart_state(Uart1))
{
sscanf(_uart1_rx_buff, "num:%d", &num);
uart_printf(Uart1, "this_num:%d\r\n",num);
uart_printf(Uart2, Buff_Mode, str, 5);
}
}
}
|
|