资源简介
自定义uart的数据并发送到pixhawk,pixhawk能够传到qgc上

代码片段和文件信息
/*
* read_uart_sensor.c
*
* read sensor through uart
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
// #include
#include
#include nk_log.h>
#include
#include
__EXPORT int read_uart_sensor_main(int argc char *argv[]);
static bool thread_should_exit = false; /*Ddemon exit flag*/
static bool thread_running = false; /*Daemon status flag*/
static int daemon_task;
struct uart_pos_s uart_data;
orb_advert_t mavlink_uart_pub ;
orb_advert_t uart_pub;
/**
* Main loop
*/
int read_uart_thread_main(int argc char *argv[]);
int read_uart(char data);
static int uart_init(const char * uart_name);
static int set_uart_baudrate(const int fd unsigned int baud);
static void usage(const char *reason);
int set_uart_baudrate(const int fd unsigned int baud)
{
int speed;
switch (baud) {
case 9600: speed = B9600; break;
case 19200: speed = B19200; break;
case 38400: speed = B38400; break;
case 57600: speed = B57600; break;
case 115200: speed = B115200; break;
default:
warnx(“ERR: baudrate: %d\n“ baud);
return -EINVAL;
}
struct termios uart_config;
int termios_state;
/* fill the struct for the new configuration */
tcgetattr(fd &uart_config);
/* clear ONLCR flag (which appends a CR for every LF) */
uart_config.c_oflag &= ~ONLCR;
/* no parity one stop bit */
uart_config.c_cflag &= ~(CSTOPB | PARENB);
/* set baud rate */
if ((termios_state = cfsetispeed(&uart_config speed)) < 0) {
warnx(“ERR: %d (cfsetispeed)\n“ termios_state);
return false;
}
if ((termios_state = cfsetospeed(&uart_config speed)) < 0) {
warnx(“ERR: %d (cfsetospeed)\n“ termios_state);
return false;
}
if ((termios_state = tcsetattr(fd TCSANOW &uart_config)) < 0) {
warnx(“ERR: %d (tcsetattr)\n“ termios_state);
return false;
}
return true;
}
int uart_init(const char * uart_name)
{
int serial_fd = open(uart_name O_RDWR | O_NOCTTY);
if (serial_fd < 0) {
err(1 “failed to open port: %s“ uart_name);
return false;
}
return serial_fd;
}
static void usage(const char *reason)
{
if (reason) {
fprintf(stderr “%s\n“ reason);
}
fprintf(stderr “usage: read_uart_sensor {start|stop|status} [param]\n\n“);
exit(1);
}
int read_uart_sensor_main(int argc char *argv[])
{
if (argc < 2) {
usage(“missing command“);
}
if (!strcmp(argv[1] “start“)) {
if (thread_running) {
warnx(“already running\n“);
return 0;
}
thread_should_exit = false;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-19 11:57 uart\
文件 3493 2018-03-19 11:22 uart\nuttx_px4fmu-v2_default.cmake
文件 276 2018-03-19 11:15 uart\uart_pos.msg
目录 0 2018-03-19 11:21 uart\read_uart\
文件 1920 2018-03-19 11:21 uart\read_uart\CMakeLists.txt
文件 5657 2018-03-19 11:45 uart\read_uart\read_uart.c
相关资源
- Quartus II 15.0中仿真Altera三速以太网I
- Quartus II 15.0中仿真Altera三速以太网I
- 3人表决器 QuartusII
- Verilog FPGA UART串口控制器
- 硬件课程设计—流水灯(quartus软件
- UART转CAN或LIN的工具(Uart2any)和文档
- 曼彻斯特编解码_同步QuartusII工程
- CPLD Verilog数字密码锁 源码
- 用quartus 2编的全加器(原理图输入)
- 6相12拍步进电机控制器
- MQTT+串口(usart)透传
- Quartus EDA交通灯控制电路的设计实训报
- Quartus II 15.0中仿真DDR2 IP核
- STM32F042F6P6 Uart12DMA;发送中断接收
- 某公司PIX 520防火墙系统和NAT的实施
- Cisco PIX 515E防火墙
- Cisco PIX 500系列防火墙产品简介
- Cisco Secure PIX 535防火墙产品简介
- Cisco Secure PIX 515防火墙产品资料
- Pix4Dmapper4.4.10中文破解版带注册机网盘
- Pix4Dmapper4.4.10中文破解
- Pix4Dmapper教程
- uart_tx.zip
- STM32F407 串口配置 串口1~6 六串口同时
- STM32F407_6个串口同时使用的代码
- s7epasrvx.exe CP2102_USB_to_UART_Bridge_Contro
- CP210x UsbToUART win7 64 bit
- quartus 11.0 破解包 全
- Quartusii十字交叉路口三色交通灯设计
- 中值滤波算法Quartus实现
评论
共有 条评论