博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[原创]函数指针的应用
阅读量:6323 次
发布时间:2019-06-22

本文共 1723 字,大约阅读时间需要 5 分钟。

hot3.png

简单的函数指针的应用,正在编辑,先剧透一下,

本人学习参考过很多代码..具体哪些就不说了,各种固件库少不了的,linux的思维方式也有参考

最终的形式如下:

//file : usr_uart.h#ifndef __USR_UART_H__#define __USR_UART_H__#include "stdint.h"typedef void (*p_uart_open_fun)(void);typedef void (*p_uart_read_fun)(uint8_t data);typedef uint8_t (*p_uart_write_fun)(void);typedef void (*p_uart_close_fun)(void);typedef struct struct_uart_demands{	p_uart_open_fun open;	p_uart_read_fun read;	p_uart_write_fun write;	p_uart_close_fun close;}T_uart_drive;extern T_uart_drive rs232;extern T_uart_drive rs485;#endif

//file:usr_uart.c#include 
#include 
#include "usr_uart.h"static void rs232_init(void);static void rs232_read(uint8_t data);static uint8_t rs232_write(void);static void rs232_disable(void);static void rs485_init(void);static void rs485_read(uint8_t data);static uint8_t rs485_write(void);static void rs485_disable(void);T_uart_drive rs232 = { rs232_init, rs232_read, rs232_write, rs232_disable };T_uart_drive rs485 = { rs485_init, rs485_read, rs485_write, rs485_disable };//////rs232 function////void rs232_init(void){}void rs232_read(uint8_t data){}uint8_t rs232_write(void){ uint8_t ret = 0; return ret;}void rs232_disable(void){}//////rs485 function////void rs485_init(void){}void rs485_read(uint8_t data){}uint8_t rs485_write(void){ uint8_t ret = 0; return ret;}void rs485_disable(void){}

//file: main.c	#include 
#include 
#include "usr_uart.h"void bsp_init(void){ rs232.open(); rs485.open();}int main(void){ SystemInit(); //config the clk bsp_init(); while(1) { }}//void assert_failed(uint8_t* file, uint32_t line){ while(1) { file = file; line = line; }}

代码如上,不懂的可以问我,正在进行中,文字就先不写了

转载于:https://my.oschina.net/mummy108/blog/228965

你可能感兴趣的文章
sudo 密码超时时间
查看>>
数学分析原理 定理 6.4
查看>>
数据结构(3)
查看>>
【西交ACM】100 A+B problem
查看>>
分布式系统的面试题14
查看>>
web标准的理解
查看>>
浅谈C中的指针和数组(一)
查看>>
你应该在开始API开发之前知道的事(下)(翻译)
查看>>
反射 -- 业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。...
查看>>
C#关于值类型和引用类型的备忘
查看>>
JavaScript正则表达式详解
查看>>
用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...
查看>>
activity四种启动模式
查看>>
tomcat运行模式APR安装
查看>>
c# winform编程之多线程ui界面资源修改总结篇
查看>>
angular4 下载文件 Excel zip包
查看>>
MVC 3 数据验证 Model Validation 详解
查看>>
[转]如何调整压力测试工具
查看>>
jquery:ajax不接收返回值回
查看>>
发布了Android的App,我要开源几个组件!
查看>>