打印
[技术问答]

M058S的IIC

[复制链接]
1360|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tongyajunlwj|  楼主 | 2014-6-2 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有没有哪位大神知道新唐的M058S的第二个IIC通道如何打开
沙发
haolaishi| | 2014-6-2 15:35 | 只看该作者
和第一个I2C打开不一样?

使用特权

评论回复
板凳
tongyajunlwj|  楼主 | 2014-6-2 21:07 | 只看该作者
haolaishi 发表于 2014-6-2 15:35
和第一个I2C打开不一样?

您好,我用的是P34、P35的IIC接口读加速度传感器的数据,现在要用P44、P45口读,但读不出来数据,我是在程序里把I2C0换成I2C1了,,,但用不了,,不知道是不是还需要配置什么

使用特权

评论回复
地板
haolaishi| | 2014-6-2 23:19 | 只看该作者
tongyajunlwj 发表于 2014-6-2 21:07
您好,我用的是P34、P35的IIC接口读加速度传感器的数据,现在要用P44、P45口读,但读不出来数据,我是在 ...

上初始化程序图

使用特权

评论回复
5
bkn1860| | 2014-6-3 09:11 | 只看该作者
tongyajunlwj 发表于 2014-6-2 21:07
您好,我用的是P34、P35的IIC接口读加速度传感器的数据,现在要用P44、P45口读,但读不出来数据,我是在 ...

I2C0换成I2C1的时候你看下寄存器的宏定义有没有?我用SPI1的时候发现我用的头文件里面SP1的寄存器没定义,自己加上就好了

使用特权

评论回复
6
gxliu08| | 2014-6-3 11:28 | 只看该作者
贴出初始化代码比较好看出问题

使用特权

评论回复
7
tongyajunlwj|  楼主 | 2014-6-3 18:10 | 只看该作者
haolaishi 发表于 2014-6-2 23:19
上初始化程序图

void I2C_Init(void)
{
        SYS->IPRSTC2 |= SYS_IPRSTC2_I2C1_RST_Msk; //C: Peripheral Reset Control Resister 2: I2C-bit = 1 => controller reset
        SYS->IPRSTC2 &= ~SYS_IPRSTC2_I2C1_RST_Msk;//C: Peripheral Reset Control Resister 2: I2C-bit = 0 => set controller to normal mode
        I2C1->I2CON |= I2C_I2CON_ENS1_Msk;
  I2C1->I2CLK = I2C_I2CLK_DIV4(120); /* 48000000Hz / 4 / 120 = 100000Hz */
        _I2C_ENABLE_TIMEOUT_COUNTER(I2C1);
}

使用特权

评论回复
8
tongyajunlwj|  楼主 | 2014-6-3 18:12 | 只看该作者
gxliu08 发表于 2014-6-3 11:28
贴出初始化代码比较好看出问题

void I2C_Init(void)
{
        SYS->IPRSTC2 |= SYS_IPRSTC2_I2C1_RST_Msk; //C: Peripheral Reset Control Resister 2: I2C-bit = 1 => controller reset
        SYS->IPRSTC2 &= ~SYS_IPRSTC2_I2C1_RST_Msk;//C: Peripheral Reset Control Resister 2: I2C-bit = 0 => set controller to normal mode
        I2C1->I2CON |= I2C_I2CON_ENS1_Msk;
  I2C1->I2CLK = I2C_I2CLK_DIV4(120); /* 48000000Hz / 4 / 120 = 100000Hz */
        _I2C_ENABLE_TIMEOUT_COUNTER(I2C1);
}

使用特权

评论回复
9
tongyajunlwj|  楼主 | 2014-6-3 18:13 | 只看该作者
bkn1860 发表于 2014-6-3 09:11
I2C0换成I2C1的时候你看下寄存器的宏定义有没有?我用SPI1的时候发现我用的头文件里面SP1的寄存器没定义 ...

有的,,我原来用的M051的头文件,然后在新唐官网上下的58S的库,但还是不行的。。

使用特权

评论回复
10
andila| | 2014-6-4 16:01 | 只看该作者
管脚功能是否有设置

使用特权

评论回复
11
gxliu08| | 2014-6-4 16:49 | 只看该作者
搞定了吗?

使用特权

评论回复
12
haolaishi| | 2014-6-5 08:18 | 只看该作者
tongyajunlwj 发表于 2014-6-3 18:10
void I2C_Init(void)
{
        SYS->IPRSTC2 |= SYS_IPRSTC2_I2C1_RST_Msk; //C: Peripheral Reset Control Res ...

这个看上去没问题,

使用特权

评论回复
13
haolaishi| | 2014-6-5 08:59 | 只看该作者
I2C2的时钟使能了没,

使用特权

评论回复
14
tongyajunlwj|  楼主 | 2014-6-6 20:19 | 只看该作者
haolaishi 发表于 2014-6-5 08:59
I2C2的时钟使能了没,

程序里好像没有使能I2C1 这是在哪个寄存器里的啊?我用I2C0的时候也没有使能I2C0的时钟啊,,

使用特权

评论回复
15
tongyajunlwj|  楼主 | 2014-6-6 20:21 | 只看该作者
gxliu08 发表于 2014-6-4 16:49
搞定了吗?

还没有啊,,,I2C的初始化放在上面了,麻烦帮我看看有什么问题,,

使用特权

评论回复
16
haolaishi| | 2014-6-6 22:40 | 只看该作者
tongyajunlwj 发表于 2014-6-6 20:19
程序里好像没有使能I2C1 这是在哪个寄存器里的啊?我用I2C0的时候也没有使能I2C0的时钟啊,, ...

就我给你发的哪个寄存器,在时钟控制管理里面了

使用特权

评论回复
17
a_ziliu| | 2014-6-11 14:56 | 只看该作者
你有把io切成i2c嗎?
請參考附件
project path:
BSP_M058S_Series_CMSIS_EN_V1.00.002 i2c master\SampleCode\Driver\I2C_MASTER

BSP_M058S_Series_CMSIS_EN_V1.00.002 i2c master.zip

516.5 KB

使用特权

评论回复
18
henryh52| | 2014-6-12 08:38 | 只看该作者
热心的高手很多啊,学习了。

使用特权

评论回复
19
tongyajunlwj|  楼主 | 2014-6-15 17:58 | 只看该作者
a_ziliu 发表于 2014-6-11 14:56
你有把io切成i2c嗎?
請參考附件
project path:

已解决了,,谢谢了

使用特权

评论回复
20
tongyajunlwj|  楼主 | 2014-6-15 17:58 | 只看该作者
a_ziliu 发表于 2014-6-11 14:56
你有把io切成i2c嗎?
請參考附件
project path:

已解决了,,谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

18

帖子

0

粉丝