你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103C6 CAN奇怪问题

[复制链接]
tangxh18 提问时间:2011-7-2 09:12 /
STM32F103C6 用  CAN 例子程序的 查询方式是可以发送 用 USB CAN 能够接受到数据 , 例子是100K 而,实际是50K  , 当改动 CAN_InitStructure.CAN_Prescaler=1;  应该是250K   可以用 USB CAN 接受不到数据
 晶体是8M HZ
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
 
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1);
    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    /* Select HSE as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);
    /* Wait till HSE is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x04)
    {
    }
 
 CAN_InitStructure.CAN_TTCM=DISABLE;
  CAN_InitStructure.CAN_ABOM=DISABLE;
  CAN_InitStructure.CAN_AWUM=DISABLE;
  CAN_InitStructure.CAN_NART=DISABLE;
  CAN_InitStructure.CAN_RFLM=DISABLE;
  CAN_InitStructure.CAN_TXFP=DISABLE;
//  CAN_InitStructure.CAN_Mode=CAN_Mode_LoopBack;
   CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;
  CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
  CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
//  CAN_InitStructure.CAN_Prescaler=5;  //50K
  CAN_InitStructure.CAN_Prescaler=1;    //250K
  CAN_Init(&CAN_InitStructure);
哪位大虾 能够帮帮啊??????????????????????????
 
收藏 评论5 发布时间:2011-7-2 09:12

举报

5个回答
废鱼 回答时间:2011-7-2 15:57:07

RE:STM32F103C6 CAN奇怪问题

只看这些代码没有问题,要看工程比较好。因为不知道系统时钟是多大。好个和系统时钟关联,默认都是72M的、
tangxh18 回答时间:2011-7-6 09:46:17

回复:STM32F103C6 CAN奇怪问题

我的外部晶体是 8M ,   采用 HSE , 50K 通讯时能够 发数, 250K 时USB CAN 接收不到数据, 但用示波器有波形,  把工程 附上

CAN_test_HSE.rar

下载

278.16 KB, 下载次数: 18

tangxh18 回答时间:2011-7-6 11:37:19

回复:STM32F103C6 CAN奇怪问题

波特率为5K  10K  50K  125K  都能够用 USB/CAN  收到数据    
250K ,500K  1M  就收不到数了 ,,一头雾水。。。。。。。。。 
废鱼 回答时间:2011-7-6 14:38:34

回复:STM32F103C6 CAN奇怪问题

回复第 4 楼 tangxh18于2011-07-06 03:37:19发表:
波特率为5K  10K  50K  125K  都能够用 USB/CAN  收到数据    
250K ,500K  1M  就收不到数了 ,,一头雾水。。。。。。。。。 
 

CAN_InitStructure.CAN_BS1=CAN_BS1_3tq;
 CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;
 CAN_InitStructure.CAN_Prescaler=4;  //125K
波特率不对。还有就是你的系统时钟太低了。我看了一下,你的系统时钟配置的是8M,那么如何你上述那样设置实际的波特率是:110K
 
关于配置你可以参考下图
stm32 CAN手册.jpg
 
tangxh18 回答时间:2011-7-6 14:40:08

回复:STM32F103C6 CAN奇怪问题

问题找到了,   问题在硬件上

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版