OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3294|回复: 2

C语言

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2016-11-4
在线时间
10 小时
发表于 2017-4-27 10:10:01 | 显示全部楼层 |阅读模式
typedef struct sChannelParams
{
    /*!
     * Frequency in Hz
     */
    uint32_t Frequency;
    /*!
     * Data rate definition
     */
    DrRange_t DrRange;
    /*!
     * Band index
     */
    uint8_t Band;
}ChannelParams_t;

typedef union uDrRange
{
    /*!
     * Byte-access to the bits
     */
    int8_t Value;
    /*!
     * Structure to store the minimum and the maximum datarate
     */
    struct sFields
    {
         /*!
         * Minimum data rate
         *
         * EU868 - [DR_0, DR_1, DR_2, DR_3, DR_4, DR_5, DR_6, DR_7]
         *
         * US915 - [DR_0, DR_1, DR_2, DR_3, DR_4]
         */
        int8_t Min : 4;
        /*!
         * Maximum data rate
         *
         * EU868 - [DR_0, DR_1, DR_2, DR_3, DR_4, DR_5, DR_6, DR_7]
         *
         * US915 - [DR_0, DR_1, DR_2, DR_3, DR_4]
         */
        int8_t Max : 4;
    }Fields;
}DrRange_t;
#define LC4                { 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
这里定义了一个结构体类型
但是我强制类型转化就报错了
( ChannelParams_t )LC4
这样我就报错了
说类型转化 不被允许。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
发表于 2017-4-28 08:56:28 | 显示全部楼层
宏替换后就变成:
( ChannelParams_t )  { 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
你强制类型转换,转换一个代码块吗 ?
回复 支持 反对

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2016-11-4
在线时间
10 小时
 楼主| 发表于 2017-4-28 20:55:08 | 显示全部楼层
huishun1314 发表于 2017-4-28 08:56
宏替换后就变成:
( ChannelParams_t )  { 867100000, { ( ( DR_5

这个不是一个 大的结构体吗?我理解是一个大的结构体
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 18:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表