STM32F303X单片机USB例程详细解析3
来源:互联网 发布:淘宝加购物车软件 编辑:程序博客网 时间:2024/05/22 04:46
接上一篇文章。继续void Set_System(void)的分析。
1.3 RCC_AHBPeriphClockCmd()
位于USB_Example\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c文件中。其主要功能也是使能或禁止AHB外设时钟。
/**
* @brief Enables or disables the AHB peripheral clock.
* @note After reset, the peripheral clock (used for registers read/write access)
* is disabled and the application software has to enable this clock before
* using it.
* @param RCC_AHBPeriph: specifies the AHB peripheral to gates its clock.
* This parameter can be any combination of the following values:
* @arg RCC_AHBPeriph_GPIOA
* @arg RCC_AHBPeriph_GPIOB
* @arg RCC_AHBPeriph_GPIOC
* @arg RCC_AHBPeriph_GPIOD
* @arg RCC_AHBPeriph_GPIOE
* @arg RCC_AHBPeriph_GPIOF
* @arg RCC_AHBPeriph_TS
* @arg RCC_AHBPeriph_CRC
* @arg RCC_AHBPeriph_FLITF (has effect only when the Flash memory is in power down mode)
* @arg RCC_AHBPeriph_SRAM
* @arg RCC_AHBPeriph_DMA2
* @arg RCC_AHBPeriph_DMA1
* @arg RCC_AHBPeriph_ADC34
* @arg RCC_AHBPeriph_ADC12
* @param NewState: new state of the specified peripheral clock.
* This parameter can be: ENABLE or DISABLE.
* @retval None
*/
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)
{
/* Check the parameters */
assert_param(IS_RCC_AHB_PERIPH(RCC_AHBPeriph));
assert_param(IS_FUNCTIONAL_STATE(NewState));
if (NewState != DISABLE)
{
RCC->AHBENR |= RCC_AHBPeriph;
}
else
{
RCC->AHBENR &= ~RCC_AHBPeriph;
}
}
RCC、AHBENR的说明见前一篇文章,在此不再赘述。
“1. Set_System()”中调用RCC_AHBPeriphClockCmd()时传入的第一个参数RCC_AHBPeriph_GPIOA在USB_Example\Libraries\STM32F30x_StdPeriph_Driver\inc\stm32f30x_rcc.h中定义:
#define RCC_AHBPeriph_GPIOA RCC_AHBENR_GPIOAEN
RCC_AHBENR_GPIOAEN在USB_Example1\Libraries\CMSIS\Device\ST\STM32F30x\Include\stm32f30x.h中定义:
#define RCC_AHBENR_GPIOAEN ((uint32_t)0x00020000) /*!< GPIOA clock enable */
对应手册P118中"Bit 17 IOPAEN: I/O port A clock enable"。
- STM32F303X单片机USB例程详细解析3
- STM32F303X单片机USB例程详细解析1
- STM32F303X单片机USB例程详细解析2
- STM32F303X单片机USB例程详细解析4
- 基于单片机的modbus例程详细
- 单片机 IIC 总线协议 和 详细例程
- 详细解析STM32单片机
- USB控制传输过程 详细解析
- 单片机中断例程
- directshow之filters 例程BALL的详细解析
- KSDK USB 例程分析
- 单片机的数字时钟例程
- 单片机驱动直流电机的例程
- 基于单片机的信号发生器例程
- 单片机的无线数据传输例程
- OMNet++ Tic Toc例程的解析3
- usb单片机程序
- Usb设备驱动4:usb-skeleton例程
- 界面跳转之presentViewController、pushViewController
- 基于nginx+HLS的流媒体服务器搭建(Ubuntu 14.04系统)
- 文件的简单读取,FileInputStream类的简单使用
- $.inArray函数用法
- Ubuntu12.04+QtCreator2.3.0+Qt4.8.1+opencv2.4.9(一)
- STM32F303X单片机USB例程详细解析3
- 对文件封装util
- 打印Http相应头字段的方法
- activity 生命周期演示
- linux每日学习(二)额外补充
- 蓝桥杯基础练习 十进制转换16进制
- 导航栏渐变效果
- 二叉树中根结点到某节点的路径(求某结点的所有祖先)
- 算法【5】:简单选择排序