OpenEdv-开源电子网

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

选用Cube库还是stdperiph_driver库好?请高手指点

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-12-15
在线时间
1 小时
发表于 2015-12-15 11:14:20 | 显示全部楼层 |阅读模式
5金钱
各位高手好,我是个新手,刚入手F030这款芯片,使用KEIL5编译软件,对于固件库,我不知道是选用Cube库还是stdperiph_driver库好,请高手给予指点,并把它们的优缺点对比比较。谢谢

最佳答案

查看完整内容[请看2#楼]

考虑到长远发展,建议用HAL库(也就是你所说的cube),因为ST以后的芯片都不会出std库了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-15 11:14:21 | 显示全部楼层
考虑到长远发展,建议用HAL库(也就是你所说的cube),因为ST以后的芯片都不会出std库了
开往春天的手扶拖拉机
回复

使用道具 举报

1

主题

374

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2014-7-23
在线时间
422 小时
发表于 2015-12-15 11:36:17 | 显示全部楼层
恩对标准库已经不跟新了
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-12-15 11:42:56 | 显示全部楼层
关键。。。不会用HAL库。。。
学无止境
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-15 13:08:45 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
HAL库相比std库更加集成了,SD卡驱动不到100行就搞定了,适合新手玩
开往春天的手扶拖拉机
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-12-15
在线时间
1 小时
 楼主| 发表于 2015-12-15 13:15:34 | 显示全部楼层
谢谢版主,另请教一问题:
stm32cube,    stm32cube Expansion ,  stm32cube Embedded 我需要下载哪个,这三个有什么区别?
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-12-15
在线时间
1 小时
 楼主| 发表于 2015-12-15 14:01:31 | 显示全部楼层
我目前在用外设库调串口DMA通讯,发现一直进不了DMA发送中断,请版主帮忙看一下:
void Uart1_DMAConfig(void)
{
  DMA_InitTypeDef  DMA_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;

  /*DMA USART1_TXD???????? */
DMA_InitStructure.DMA_BufferSize = TX_LEN;//?è??·????????¤??
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;//8?????è?????í??
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;//8???????????í??
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//???è???·?????÷??±?
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//???????·????
  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;//?????????????¨??????????????
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//?????è????????????????
  
  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)TxBuffer;//?è??·??????????×???·
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//???è×÷???????????????????·?¨??????->???è??
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA????????
  DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&USART1->TDR) ;//?è??????·??????è?×???·
  DMA_Init(DMA1_Channel4, &DMA_InitStructure);//????????

  /*DMA USART1_RXD???????? */
// DMA_InitStructure.DMA_BufferSize = RX_LEN;//?è???????????¤??
//  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;//8?????è?????í??
//  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;//8???????????í??
//  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//???è???·?????÷??±?
//  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//???????·????
//  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;//?????????????¨??????????????
//  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//?????è????????????????
  
//  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)RxBuffer;//?è??·??????????×???·
//  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//???è×÷?????????????????·?¨???è->????????
//  DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA????????
 // DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&USART1->RDR) ;//?è?????????????è?×???·
//  DMA_Init(DMA1_Channel5, &DMA_InitStructure);//????????

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//DMA1?±?????? 
 
  //USART_DMACmd(USART1, USART_DMAReq_Tx|USART_DMAReq_Rx, ENABLE);//UART1·???????????DMA????
USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);
  DMA_ITConfig(DMA1_Channel4, DMA_IT_TC,ENABLE);//DMA1?¨??4·????ê??????????
//DMA_ITConfig(DMA1_Channel5, DMA_IT_TC,ENABLE);//DMA1?¨??5·????ê??????????

NVIC_InitStructure.NVIC_IRQChannel=DMA1_Channel4_5_IRQn;//DMA?¨??4,5????????
NVIC_InitStructure.NVIC_IRQChannelPriority=2;//??????????2
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//????????

DMA_ClearFlag(DMA1_FLAG_GL4); //?????¨??4?ù??±ê??
//DMA_ClearFlag(DMA1_FLAG_GL5); //?????¨??5?ù??±ê??

DMA_Cmd(DMA1_Channel4,ENABLE);//DMA1?¨??4????
//DMA_Cmd(DMA1_Channel5,ENABLE);//DMA1?¨??5????
}
以上是对DMA的配置
采用DMA发送中断方式
另有几个问题请教:
1. DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&USART1->TDR)这一句取地址对吗?
2. DMA发送和接收中断能同时打开并使用吗?
3. USART1的TX和RX分别对应DMA的哪个通道,是2,3还是4,5
4.对UART1 DMA中断优先级设置有何要求?
5.如何再次启动DMA发送,是直接使能通道就可以吗?如:DMA_Cmd(DMA1_Channel4,ENABLE);
   是否需要对数据长度和地址重新赋值?

谢谢
回复

使用道具 举报

13

主题

296

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2067
金钱
2067
注册时间
2012-5-26
在线时间
292 小时
发表于 2015-12-15 14:38:20 | 显示全部楼层
cube库,之前还不知道是什么,原来是这个,都向图形化IDE发展了
活着才是王道!健康是一切的前提!
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-12-16 23:16:33 | 显示全部楼层
回复【8楼】lison0103:
---------------------------------
是啊!!!图形化更清晰明了!!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 09:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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