stm32串口数据传输(*((void(*)(u8))g_UP_ZigbeeITAddress))(USART_ReceiveData(UART4))
来源:互联网 发布:淘宝开店步骤 编辑:程序博客网 时间:2024/06/06 12:54
(*((void(*)(u8))g_UP_ZigbeeITAddress))(USART_ReceiveData(UART4))
(出现在网络对抗机器人Zigbee初始化中)
首先补充一点C语言的相关知识:
首先补充一点C语言的相关知识:
【对开始处问题的具体详解:】
1、g_UP_ZigbeeITAddress表示一个 指向【类型为(void(*)(u8) 的函数】的指针变量
2、那么g_UP_ZigbeeITAddress函数指针具体指向哪个函数呢?
3、那么又是谁调用了上面的函数UP_SetZigbeeHadler()呢?
其中 UP_Zigbee_Rec是函数UP_Zigbee_Rec(u32 data)的地址
4、UP_Zigbee_Rec(u32 data)函数:
也就是说 函数UP_Zigbee_EnableIT(void) 调用了-->【UP_SetZigbeeHadler(void (*ApplicationAddress)(u32))函数】调用了-->UP_Zigbee_Rec(u32 data)函数
5、那么 是谁调用了UP_Zigbee_EnableIT(void) 呢?
其中main()函数在开始处调用了一次UP_Zigbee_EnableIT(void)
6、【小结】也就是说 调用关系为:
main()----调用---->UP_Zigbee_EnableIT(void)----调用---->UP_SetZigbeeHadler(void (*ApplicationAddress)(u32))----调用---->UP_Zigbee_Rec(u32 data)
从而g_UP_ZigbeeITAddress就指向了函数UP_Zigbee_Rec(u32 data)
7、那么函数UP_Zigbee_Rec(u32 data)又是从哪里接收到数据的呢?
答案又回到了开头时提出的疑问:
/**********************************结束**************************************************************/
0 0
- stm32串口数据传输(*((void(*)(u8))g_UP_ZigbeeITAddress))(USART_ReceiveData(UART4))
- STM32 USART1 USART2 UASRT3 UART4 UART5串口通信测试程序
- STM32串口双缓冲乒乓数据传输方式
- 使用STM32的串口进行大量数据传输
- STM32 UART4,UART5配置方式
- STM32F1的UART4串口配置
- stm32 u8 u16 u32
- STM32 uart4初始化进hardfault问题
- STM32F407 串口编程USART1,USART2,USART3,UART4
- STM32 DMA 应用之(二) DMA 串口 数据传输--发送
- STM32之 UART4 和UART5所遇到的问题
- STM32串口
- stm32串口
- stm32-串口
- Micro2440数据传输---串口通信
- 【STM32】STM32之串口
- 关于系统时钟初始化函数“void Stm32_Clock_Init(u8 PLL)
- stm32在rt-thread上使用uart4实现gps的输出
- Retrofit -> 封装
- Java学习笔记_000_杂项
- sql like与索引(后模糊匹配才能让索引有效)
- JS国际化
- 深入学习:Windows下Git入门教程(上)
- stm32串口数据传输(*((void(*)(u8))g_UP_ZigbeeITAddress))(USART_ReceiveData(UART4))
- oracle join关键字使用总结
- hadoop mapreduce 的精华的思想
- Js验证输入框
- ntp时间同步
- 怎样获取页面定时器的数量
- 用Redis实现分布式锁 与 实现任务队列
- ORACLE统计信息
- PAT1015. Reversible Primes (20)