imx6ul+uart使用
来源:互联网 发布:绝地求生优化软件 编辑:程序博客网 时间:2024/06/01 09:57
应用库第二弹:uart
串口通信大家肯定很熟悉了,但是linux上串口大家一定用的比较少吧,大多人在mpu的板子都是做一些数据处理,opencv之类的,都比较高大上。
写这一系列库就是可以让mpu板子和stm32一样玩;
程序主函数:
1) 先初始化了串口
2) 打印了一串信息
3)进入while死循环,非阻塞式读取接收端是否有数据,有则打印
4)每秒打印一个C字符
1)串口初始化
先用非阻塞方式打开了设备,在进行串口的配置,设置了波特率,数据位数,奇偶校检和停止位数
2) 打印信息效果图:
3)串口接收,非阻塞方式读取
4)串口发送
串口的发送和接收都是利用write和read函数实现,直接读取设备和写设备。
5)释放设备
串口恢复默认设置,关闭串口设备。
串口通信大家肯定很熟悉了,但是linux上串口大家一定用的比较少吧,大多人在mpu的板子都是做一些数据处理,opencv之类的,都比较高大上。
写这一系列库就是可以让mpu板子和stm32一样玩;
程序主函数:
int main(int argc, char** argv)
{
int dev_fd;
if ((dev_fd = uart_init()) == -1) {
printf("uart_init error\n");
return -1;
}
unsigned char data = 0;
uart_send_buf(dev_fd, (unsigned char*)mesg_buf, strlen(mesg_buf));
while (1) {
if (uart_get_char(dev_fd, &data) > 0)
uart_send_char(dev_fd, data);
sleep(1);
uart_send_char(dev_fd, 'C');
}
uart_deinit(dev_fd);
return 0;
}
2) 打印了一串信息
3)进入while死循环,非阻塞式读取接收端是否有数据,有则打印
4)每秒打印一个C字符
1)串口初始化
EXPORT int uart_init(void)
{
int dev_fd;
if ((dev_fd = open_hardware(CON6, O_RDWR | O_NONBLOCK)) < 0) {
printf("Fail to open uart device\n");
return -1;
}
if (uart_setup_port(dev_fd, 115200, 8, 0, 1) < 0) {
printf("uart_setup_port error\n");
return -1;
} else {
return dev_fd;
}
}
2) 打印信息效果图:
3)串口接收,非阻塞方式读取
EXPORT int uart_get_buf(int dev_fd, unsigned char *buf, int len)
{
return read_hardware(dev_fd, buf, len);
}
EXPORT int uart_get_char(int dev_fd, unsigned char *byte_data)
{
return uart_get_buf(dev_fd, byte_data, 1);
}
EXPORT int uart_send_buf(int dev_fd, unsigned char *_buf, int len)
{
int ret = write_hardware(dev_fd, _buf, len);
if (ret < 0) {
printf("Failed to write_hardware to the output!\n");
return -1;
} else {
return 0;
}
}
EXPORT int uart_send_char(int dev_fd, unsigned char value)
{
return uart_send_buf(dev_fd, &value, 1);
}
5)释放设备
EXPORT int uart_deinit(int dev_fd)
{
int ret = 0;
if ((ret = uart_reset_port(dev_fd)) == -1) {
return -1;
}
close_hardware(dev_fd);
return ret;
}
阅读全文
0 0
- imx6ul+uart使用
- imx6ul+spi使用
- imx6ul+i2c使用
- imx6ul+can使用
- imx6ul+rtc使用
- 【IMX6UL开发板试用体验】上手试用与资源使用
- ATMEGA128 UART的使用
- ATMEGA128 UART的使用
- STM32 UART的使用过程
- LPC2000 UART串口使用心得
- QSocketNotifier使用在Uart上
- 通过UART使用printf函数
- TI M4的UART使用
- raspberry pi 3使用uart
- 使用UART(串口注意事项)
- UART的基础知识及使用
- imx6ul之OpenWRT中使用mpd作为音频Server及其使用
- UART
- imx6ul+spi使用
- 留坑与填坑系列之---借鉴拓扑流形的概念来阐述中医与现代医学的关系
- Linux串口驱动(8250)的编写与调试
- 阿里云服务器本地SSD型,为极致存储性能需求场景而生
- spring自带的定时任务功能,基于注解和xml配置
- imx6ul+uart使用
- GreenDao的增删改查
- python2.7 遇到ascii编码问题解决方法
- Ajax(jQuery的ajax()方法)
- node.js基础 Stream流
- Jenkins + Jmeter 搭建简易CI (自动执行接口测试+发布web报告+发送邮件)
- sqlserver连接
- 初学者福音,教你如何学好java!
- 问题杂记