找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[M051] MINI51BSPBUG?

[复制链接]
跳转到指定楼层
楼主
重庆酱油仔 发表于 2014-1-13 11:07:18 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
如题在官网下载的MINNI51BSP 使用中发现在设置时钟时,
1    CLK_SetModuleClock(PWM01_MODULE,CLK_CLKSEL1_PWM01_S_HCLK,1);
2    CLK_SetModuleClock(UART_MODULE,CLK_CLKSEL1_UART_S_IRC22M,CLK_CLKDIV_UART(1));
先写句子2,再写1,串口的时钟会被关闭。查阅BSP的内容发现内部用宏命令处理时执行如下语句时,
u32tmp = ( u32tmp & ~MODULE_CLKSEL_Msk(u32ModuleIdx)<<MODULE_CLKSEL_Pos(u32ModuleIdx) ) | u32ClkSrc;会自动给关闭掉UART的时钟。请问是否有人关注到此问题,是否为BUG。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
 楼主| 重庆酱油仔 发表于 2014-1-14 10:33:36 | 显示全部楼层
本帖最后由 重庆酱油仔 于 2014-1-14 10:35 编辑

Mini51DESeriesBSP_CMSIS_v3.00.001;
人肉验证,绝不雌黄!
感觉问题应该在 & ~MODULE_CLKSEL_Msk(u32ModuleIdx;可能有位标记错误。但没弄明白他里面的位怎么标记的,不敢轻易动手!
回复 支持 反对

使用道具 举报

板凳
 楼主| 重庆酱油仔 发表于 2014-1-16 08:54:09 | 显示全部楼层
这个是指只有不是空的(NoMsk)  就执行下面的语句,到
u32tmp = ( u32tmp & ~MODULE_CLKSEL_Msk(u32ModuleIdx)<<MODULE_CLKSEL_Pos(u32ModuleIdx) ) | u32ClkSrc;
时,会错误的与掉前面已经置位的数据。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU