- 打卡等级:偶尔看看III
- 打卡总天数:41
- 最近打卡:2025-06-17 08:53:27
超级版主
- 积分
- 2533
|
发表于 2025-2-19 11:21:04
|
显示全部楼层
第四集:串口通信,有DMA支持,有接收超时中断
1.编译图片:
2.主要代码:
#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;
WTST = 0;
set_io_mode(pu_mode,Pin36,Pin37,Pin42,Pin43,Pin_End); //设置P36、P37端口为准双向口,推荐:TXD(推挽输出)、RXD(高阻输入+4K内部电阻上拉)
set_uart_mode(Uart1, "115200bps", Uart1_P36_7, Use_Timerx, Uart_End);
set_uart_mode(Uart2, Uart2_P42_3, "9600bps", Use_Timerx, Uart_End);
set_io_mode(hz_mode, Pin34, Pin_End); //设置I/O中断,P34按键,按下时发送一个字符串
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);
}
}
}
3.学习效果:
AI8051U实验箱库函数 第四集:串口通信 手敲程序.zip
(141.33 KB, 下载次数: 9)
|
|