STM32F10X的GPIO模拟I2S

hzgoo 2011-08-28 08:09:44
用GPIO可以模拟I2S吗?

有没有做过这样的工作呢?

能说下要怎样配置引脚吗?
...全文
888 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbing7 2011-08-30
  • 打赏
  • 举报
回复
换AD口嘛,通信的东西,如果硬件没有问题的话,用硬件肯定更加给力

SPI的时序又不是很复杂,不过自己模拟的,效率好像比硬件差一点点

ffeige1984 2011-08-29
  • 打赏
  • 举报
回复
用207吧
hzgoo 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tanybin 的回复:]

不太好模拟,还是直接用I2S吧。
[/Quote]
那到底可不可以呢?
hzgoo 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ffeige1984 的回复:]

– Up to 3 SPIs (30 Mbit/s), 2 with muxed I2S
to achieve audio class accuracy via audio
PLL or external PLL
[/Quote]
你是说可以用SPI+GPIO来模拟吗?
hzgoo 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ffeige1984 的回复:]

可以啊,为什么要模拟啊 ,STM32有总线,看下介绍就知道了(i2s),如果是做音频的话 直接用AD
[/Quote]
我也想啊!但是STM32f107 上面总共才两个SPI(I2S),而恰好两个引脚和以太网口是复用同一个引脚,一个已经用作DA输出,另一个要用作以太网口,还需要一个I2S作AD输入,所以只好用GPIO模拟了
tanybin 2011-08-28
  • 打赏
  • 举报
回复
不太好模拟,还是直接用I2S吧。
ffeige1984 2011-08-28
  • 打赏
  • 举报
回复
– Up to 3 SPIs (30 Mbit/s), 2 with muxed I2S
to achieve audio class accuracy via audio
PLL or external PLL
ffeige1984 2011-08-28
  • 打赏
  • 举报
回复
可以啊,为什么要模拟啊 ,STM32有I2S总线,看下介绍就知道了SPI(i2s),如果是做音频的话 直接用AD
STM32F10xxx rev7v3参考手册. 南京万利提供的原始翻译文档. 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本. 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 目录 1 文中的缩写 16 1.1 寄存器描述表中使用的缩写列表 16 1.2 术语表 16 1.3 可用的外设 16 2 存储器和总线构架 17 2.1 系统构架 17 2.2 存储器组织 18 2.3 存储器映像 19 2.3.1 嵌入式SRAM 20 2.3.2 位段 20 2.3.3 嵌入式闪存 21 2.4 启动配置 23 3 CRC计算单元(CRC) 25 3.1 CRC简介 25 3.2 CRC主要特性 25 3.3 CRC功能描述 25 3.4 CRC寄存器 26 3.4.1 数据寄存器(CRC_DR) 26 3.4.2 独立数据寄存器(CRC_IDR) 26 3.4.3 控制寄存器(CRC_CR) 27 3.4.4 CRC寄存器映像 27 4 电源控制(PWR) 28 4.1 电源 28 4.1.1 独立的A/D转换器供电和参考电压 28 4.1.2 电池备份区域 29 4.1.3 电压调节器 29 4.2 电源管理器 29 4.2.1 上电复位(POR)和掉电复位(PDR) 29 4.2.2 可编程电压监测器(PVD) 30 4.3 低功耗模式 30 4.3.1 降低系统时钟 31 4.3.2 外部时钟的控制 31 4.3.3 睡眠模式 31 4.3.4 停止模式 32 4.3.5 待机模式 33 4.3.6 低功耗模式下的自动唤醒(AWU) 34 4.4 电源控制寄存器 35 4.4.1 电源控制寄存器(PWR_CR) 35 4.4.2 电源控制/状态寄存器 36 4.4.3 PWR寄存器地址映像 37 5 备份寄存器(BKP) 38 5.1 BKP简介 38 5.2 BKP特性 38 目录 STM32F10xxx参考手册 3/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 5.3 BKP功能描述 38 5.3.1 侵入检测 38 5.3.2 RTC校准 39 5.4 BKP寄存器描述 39 5.4.1 备份数据寄存器x(BKP_DRx) (x = 1 … 10) 39 5.4.2 RTC时钟校准寄存器(BKP_RTCCR) 39 5.4.3 备份控制寄存器(BKP_CR) 40 5.4.4 备份控制/状态寄存器(BKP_CSR) 40 5.4.5 BKP寄存器映像 42 6 复位和时钟控制(RCC) 45 6.1 复位 45 6.1.1 系统复位 45 6.1.2 电源复位 45 6.1.3 备份域复位 46 6.2 时钟 46 6.2.1 HSE时钟 48 6.2.2 HSI时钟 48 6.2.3 PLL 49 6.2.4 LSE时钟 49 6.2.5 LSI时钟 49 6.2.6 系统时钟(SYSCLK)选择 50 6.2.7 时钟安全系统(CSS) 50 6.2.8 RTC时钟 50 6.2.9 看门狗时钟 50 6.2.10 时钟输出 50 6.3 RCC寄存器描述 51 6.3.1 时钟控制寄存器(RCC_CR) 51 6.3.2 时钟配置寄存器(RCC_CFGR) 52 6.3.3 时钟中断寄存器 (RCC_CIR) 54 6.3.4 APB2外设复位寄存器 (RCC_APB2RSTR) 56 6.3.5 APB1外设复位寄存器 (RCC_APB1RSTR) 58 6.3.6 AHB外设时钟使能寄存器 (RCC_AHBENR) 60 6.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR) 61 6.3.8 APB1外设时钟使能寄存器(RCC_APB1ENR) 62 6.3.9 备份域控制寄存器 (RCC_BDCR) 65 6.3.10 控制/状态寄存器 (RCC_CSR) 66 6.3.11 RCC寄存器地址映像 68 7 通用和复用功能I/O(GPIO和AFIO) 69 7.1 GPIO功能描述 69 7.1.1 通用I/O(GPIO) 70 7.1.2 单独的位设置或位清除 71 7.1.3 外部中断/唤醒线 71 7.1.4 复用功能(AF) 71 7.1.5 软件重新映射I/O复用功能 71 7.1.6 GPIO锁定机制 71 7.1.7 输入配置 71 7.1.8 输出配置 72 7.1.9 复用功能配置 73 7.1.10 模拟输入配置 73 目录 STM32F10xxx参考手册 4/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 7.2 GPIO寄存器描述 75 7.2.1 端口配置低寄存器(GPIOx_CRL) (x=A..E) 75 7.2.2 端口配置高寄存器(GPIOx_CRH) (x=A..E) 75 7.2.3 端口输入数据寄存器(GPIOx_IDR) (x=A..E) 76 7.2.4 端口输出数据寄存器(GPIOx_ODR) (x=A..E) 76 7.2.5 端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E) 77 7.2.6 端口位清除寄存器(GPIOx_BRR) (x=A..E) 77 7.2.7 端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 77 7.3 复用功能I/O和调试配置(AFIO) 78 7.3.1 把OSC32_IN/OSC32_OUT作为GPIO 端口PC14/PC15 78 7.3.2 把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1 78 7.3.3 CAN复用功能重映射 79 7.3.4 JTAG/SWD复用功能重映射 79 7.3.5 ADC复用功能重映射 80 7.3.6 定时器复用功能重映射 80 7.3.7 USART复用功能重映射 81 7.3.8 I2C 1 复用功能重映射 82 7.3.9 SPI 1复用功能重映射 82 7.4 AFIO寄存器描述 83 7.4.1 事件控制寄存器(AFIO_EVCR) 83 7.4.2 复用重映射和调试I/O配置寄存器(AFIO_MAPR) 83 7.4.3 外部中断配置寄存器1(AFIO_EXTICR1) 86 7.4.4 外部中断配置寄存器2(AFIO_EXTICR2) 86 7.4.5 外部中断配置寄存器3(AFIO_EXTICR3) 87 7.4.6 外部中断配置寄存器4(AFIO_EXTICR4) 87 7.5 GPIO 和AFIO寄存器地址映象 88 8 中断和事件 89 8.1 嵌套向量中断控制器 89 8.1.1 系统嘀嗒(SysTick)校准值寄存器 89 8.1.2 中断和异常向量 89 8.2 外部中断/事件控制器(EXTI) 91 8.2.1 主要特性 91 8.2.2 框图 92 8.2.3 唤醒事件管理 92 8.2.4 功能说明 92 8.2.5 外部中断/事件线路映像 94 8.3 EXTI 寄存器描述 95 8.3.1 中断屏蔽寄存器(EXTI_IMR) 95 8.3.2 事件屏蔽寄存器(EXTI_EMR) 95 8.3.3 上升沿触发选择寄存器(EXTI_RTSR) 96 8.3.4 下降沿触发选择寄存器(EXTI_FTSR) 96 8.3.5 软件中断事件寄存器(EXTI_SWIER) 97 8.3.6 挂起寄存器(EXTI_PR) 97 8.3.7 外部中断/事件寄存器映像 98 9 DMA 控制器(DMA) 99 9.1 DMA简介 99 9.2 DMA主要特性 99 9.3 功能描述 100 目录 STM32F10xxx参考手册 5/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 9.3.1 DMA处理 100 9.3.2 仲裁器 100 9.3.3 DMA 通道 101 9.3.4 可编程的数据传输宽度,对齐方式和数据大小端 102 9.3.5 错误管理 103 9.3.6 中断 103 9.3.7 DMA请求映像 104 9.4 DMA寄存器 107 9.4.1 DMA中断状态寄存器(DMA_ISR) 107 9.4.2 DMA中断标志清除寄存器(DMA_IFCR) 108 9.4.3 DMA通道x配置寄存器(DMA_CCRx)(x = 1…7) 108 9.4.4 DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7) 110 9.4.5 DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7) 110 9.4.6 DMA通道x存储器地址寄存器(DMA_CPARx)(x = 1…7) 110 9.4.7 DMA寄存器映像 111 10 模拟/数字转换(ADC) 113 10.1 ADC介绍 113 10.2 ADC主要特征 113 10.3 ADC功能描述 114 10.3.1 ADC开关控制 115 10.3.2 ADC时钟 115 10.3.3 通道选择 115 10.3.4 单次转换模式 115 10.3.5 连续转换模式 116 10.3.6 时序图 116 10.3.7 模拟看门狗 116 10.3.8 扫描模式 117 10.3.9 注入通道管理 117 10.3.10 间断模式 118 10.4 校准 119 10.5 数据对齐 119 10.6 可编程的通道采样时间 120 10.7 外部触发转换 120 10.8 DMA请求 121 10.9 双ADC模式 121 10.9.1 同步注入模式 122 10.9.2 同步规则模式 123 10.9.3 快速交替模式 123 10.9.4 慢速交替模式 124 10.9.5 交替触发模式 124 10.9.6 独立模式 125 10.9.7 混合的规则/注入同步模式 125 10.9.8 混合的同步规则+交替触发模式 125 10.9.9 混合同步注入+交替模式 126 10.10 温度传感器 126 10.11 ADC中断 127 10.12 ADC寄存器描述 128 10.12.1 ADC状态寄存器(ADC_SR) 128 目录 STM32F10xxx参考手册 6/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 10.12.2 ADC控制寄存器1(ADC_CR1) 129 10.12.3 ADC控制寄存器2(ADC_CR2) 131 10.12.4 ADC采样时间寄存器1(ADC_SMPR1) 133 10.12.5 ADC采样时间寄存器2(ADC_SMPR2) 133 10.12.6 ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 134 10.12.7 ADC看门狗高阀值寄存器(ADC_HTR) 134 10.12.8 ADC看门狗低阀值寄存器(ADC_LRT) 134 10.12.9 ADC规则序列寄存器1(ADC_SQR1) 135 10.12.10 ADC规则序列寄存器2(ADC_SQR2) 135 10.12.11 ADC规则序列寄存器3(ADC_SQR3) 136 10.12.12 ADC注入序列寄存器(ADC_JSQR) 136 10.12.13 ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4) 137 10.12.14 ADC规则数据寄存器(ADC_DR) 137 10.12.15 ADC寄存器地址映像 138 11 数字/模拟转换(DAC) 140 11.1 DAC简介 140 11.2 DAC主要特征 140 11.3 DAC功能描述 141 11.3.1 使能DAC通道 141 11.3.2 使能DAC输出缓存 141 11.3.3 DAC数据格式 142 11.3.4 DAC转换 142 11.3.5 DAC输出电压 143 11.3.6 选择DAC触发 143 11.3.7 DMA请求 144 11.3.8 噪声生成 144 11.3.9 三角波生成 145 11.4 双DAC通道转换 145 11.4.1 无波形生成的独立触发 145 11.4.2 带相同LFSR生成的独立触发 146 11.4.3 带不同LFSR生成的独立触发 146 11.4.4 带相同三角波生成的独立触发 146 11.4.5 带不同三角波生成的独立触发 146 11.4.6 同时软件启动 147 11.4.7 不带波形生成的同时触发 147 11.4.8 带相同LFSR生成的同时触发 147 11.4.9 带不同LFSR生成的同时触发 147 11.4.10 带相同三角波生成的同时触发 147 11.4.11 带不同三角波生成的同时触发 148 11.5 DAC寄存器 149 11.5.1 DAC控制寄存器(DAC_CR) 149 11.5.2 DAC软件触发寄存器(DAC_SWTRIGR) 151 11.5.3 DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) 152 11.5.4 DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) 152 11.5.5 DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) 152 11.5.6 DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) 153 11.5.7 DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) 153 11.5.8 DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2) 153 11.5.9 双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD) 154 11.5.10 双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD) 154 目录 STM32F10xxx参考手册 7/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 11.5.11 双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) 154 11.5.12 DAC通道1数据输出寄存器(DAC_DOR1) 155 11.5.13 DAC通道2数据输出寄存器(DAC_DOR2) 155 11.5.14 DAC寄存器映像 156 12 高级控制定时器(TIM1和TIM8) 157 12.1 TIM1和TIM8简介 157 12.2 TIM1和TIM8主要特性 157 12.3 TIM1和TIM8功能描述 158 12.3.1 时基单元 158 12.3.2 计数器模式 160 12.3.3 重复计数器 167 12.3.4 时钟选择 168 12.3.5 捕获/比较通道 171 12.3.6 输入捕获模式 173 12.3.7 PWM输入模式 174 12.3.8 强置输出模式 174 12.3.9 输出比较模式 175 12.3.10 PWM模式 176 12.3.11 互补输出和死区插入 178 12.3.12 使用刹车功能 179 12.3.13 在外部事件时清除OCxREF信号 180 12.3.14 产生六步PWM输出 181 12.3.15 单脉冲模式 182 12.3.16 编码器接口模式 183 12.3.17 定时器输入异或功能 185 12.3.18 与霍尔传感器的接口 185 12.3.19 TIMx定时器和外部触发的同步 187 12.3.20 定时器同步 190 12.3.21 调试模式 190 12.4 TIM1和TIM8寄存器描述 191 12.4.1 控制寄存器1(TIMx_CR1) 191 12.4.2 控制寄存器2(TIMx_CR2) 192 12.4.3 从模式控制寄存器(TIMx_SMCR) 193 12.4.4 DMA/中断使能寄存器(TIMx_DIER) 195 12.4.5 状态寄存器(TIMx_SR) 196 12.4.6 事件产生寄存器(TIMx_EGR) 197 12.4.7 捕获/比较模式寄存器1(TIMx_CCMR1) 198 12.4.8 捕获/比较模式寄存器2(TIMx_CCMR2) 200 12.4.9 捕获/比较使能寄存器(TIMx_CCER) 202 12.4.10 计数器(TIMx_CNT) 203 12.4.11 预分频器(TIMx_PSC) 204 12.4.12 自动重装载寄存器(TIMx_ARR) 204 12.4.13 重复计数寄存器(TIMx_RCR) 204 12.4.14 捕获/比较寄存器1(TIMx_CCR1) 205 12.4.15 捕获/比较寄存器2(TIMx_CCR2) 205 12.4.16 捕获/比较寄存器3(TIMx_CCR3) 205 12.4.17 捕获/比较寄存器(TIMx_CCR4) 206 12.4.18 刹车和死区寄存器(TIMx_BDTR) 206 12.4.19 DMA控制寄存器(TIMx_DCR) 208 12.4.20 连续模式的DMA地址(TIMx_DMAR) 208 目录 STM32F10xxx参考手册 8/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 12.4.21 TIM1和TIM8寄存器图 209 13 通用定时器(TIMx) 211 13.1 TIMx简介 211 13.2 TIMx主要功能 211 13.3 TIMx功能描述 212 13.3.1 时基单元 212 13.3.2 计数器模式 213 13.3.3 时钟选择 221 13.3.4 捕获/比较通道 223 13.3.5 输入捕获模式 225 13.3.6 PWM输入模式 225 13.3.7 强置输出模式 226 13.3.8 输出比较模式 226 13.3.9 PWM 模式 227 13.3.10 单脉冲模式 229 13.3.11 在外部事件时清除OCxREF信号 231 13.3.12 编码器接口模式 231 13.3.13 定时器输入异或功能 233 13.3.14 定时器和外部触发的同步 233 13.3.15 定时器同步 235 13.3.16 调试模式 239 13.4 TIMx寄存器描述 240 13.4.1 控制寄存器1(TIMx_CR1) 240 13.4.2 控制寄存器2(TIMx_CR2) 241 13.4.3 从模式控制寄存器(TIMx_SMCR) 242 13.4.4 DMA/中断使能寄存器(TIMx_DIER) 243 13.4.5 状态寄存器(TIMx_SR) 244 13.4.6 事件产生寄存器(TIMx_EGR) 245 13.4.7 捕获/比较模式寄存器1(TIMx_CCMR1) 246 13.4.8 捕获/比较模式寄存器2(TIMx_CCMR2) 249 13.4.9 捕获/比较使能寄存器(TIMx_CCER) 251 13.4.10 计数器(TIMx_CNT) 252 13.4.11 预分频器(TIMx_PSC) 252 13.4.12 自动重装载寄存器(TIMx_ARR) 252 13.4.13 捕获/比较寄存器1(TIMx_CCR1) 252 13.4.14 捕获/比较寄存器2(TIMx_CCR2) 253 13.4.15 捕获/比较寄存器3(TIMx_CCR3) 253 13.4.16 捕获/比较寄存器4(TIMx_CCR4) 253 13.4.17 DMA控制寄存器(TIMx_DCR) 254 13.4.18 连续模式的DMA地址(TIMx_DMAR) 254 13.4.19 TIMx寄存器图 255 14 基本定时器(TIM6和TIM7) 257 14.1 TIM6和TIM7简介 257 14.2 TIM6和TIM7的主要特性 257 14.3 TIM6和TIM7的功能 258 14.3.1 时基单元 258 14.3.2 计数模式 259 14.3.3 时钟源 261 14.3.4 调试模式 262 目录 STM32F10xxx参考手册 9/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 14.4 TIM6和TIM7寄存器 262 14.4.1 控制寄存器1(TIMx_CR1) 262 14.4.2 控制寄存器2(TIMx_CR2) 263 14.4.3 DMA/中断使能寄存器(TIMx_DIER) 263 14.4.4 状态寄存器(TIMx_SR) 264 14.4.5 事件产生寄存器(TIMx_EGR) 264 14.4.6 计数器(TIMx_CNT) 264 14.4.7 预分频器(TIMx_PSC) 265 14.4.8 自动重装载寄存器(TIMx_ARR) 265 14.4.9 TIM6和TIM7寄存器图 266 15 实时时钟(RTC) 267 15.1 RTC简介 267 15.2 主要特性 267 15.3 功能描述 267 15.3.1 概述 267 15.3.2 复位过程 268 15.3.3 读RTC寄存器 268 15.3.4 配置RTC寄存器 269 15.3.5 RTC标志的设置 269 15.4 RTC寄存器描述 270 15.4.1 RTC控制寄存器高位(RTC_CRH) 270 15.4.2 RTC控制寄存器低位(RTC_CRL) 270 15.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 271 15.4.4 RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL) 272 15.4.5 RTC计数器寄存器 (RTC_CNTH / RTC_CNTL) 272 15.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL) 273 15.4.7 RTC寄存器映像 275 16 独立看门狗(IWDG) 276 16.1 简介 276 16.2 IWDG主要性能 276 16.3 IWDG功能描述 276 16.3.1 硬件看门狗 276 16.3.2 寄存器访问保护 276 16.3.3 调试模式 276 16.4 IWDG寄存器描述 277 16.4.1 键寄存器(IWDG_KR) 277 16.4.2 预分频寄存器(IWDG_PR) 278 16.4.3 重装载寄存器(IWDG_RLR) 278 16.4.4 状态寄存器(IWDG_SR) 279 16.4.5 IWDG寄存器映像 279 17 窗口看门狗(WWDG) 280 17.1 WWDG简介 280 17.2 WWDG主要特性 280 17.3 WWDG功能描述 280 17.4 如何编写看门狗超时程序 281 17.5 调试模式 282 17.6 寄存器描述 282 目录 STM32F10xxx参考手册 10/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 17.6.1 控制寄存器(WWDG_CR) 282 17.6.2 配置寄存器(WWDG_CFR) 283 17.6.3 状态寄存器(WWDG_SR) 283 17.6.4 WWDG寄存器映像 284 18 灵活的静态存储器控制器(FSMC) 285 18.1 FSMC功能描述 285 18.2 框图 285 18.3 AHB接口 286 18.3.1 支持的存储器和操作 286 18.4 外部设备地址映像 287 18.4.1 NOR和PSRAM地址映像 288 18.4.2 NAND和PC卡地址映像 288 18.5 NOR闪存和PSRAM控制器 289 18.5.1 外部存储器接口信号 290 18.5.2 支持的存储器及其操作 291 18.5.3 时序规则 291 18.5.4 NOR闪存和PSRAM时序图 291 18.5.5 同步的成组读 304 18.5.6 NOR闪存和PSRAM控制器寄存器 308 18.6 NAND闪存和PC卡控制器 313 18.6.1 外部存储器接口信号 313 18.6.2 NAND闪存/PC卡支持的存储器及其操作 314 18.6.3 NAND闪存、ATA和PC卡时序图 314 18.6.4 NAND闪存操作 315 18.6.5 NAND闪存预等待功能 316 18.6.6 NAND闪存的纠错码ECC计算(NAND闪存) 317 18.6.7 NAND闪存和PC卡控制器寄存器 317 18.7 FSMC寄存器地址映象 324 19 SDIO接口(SDIO) 325 19.1 SDIO主要功能 325 19.2 SDIO总线拓扑 325 19.3 SDIO功能描述 328 19.3.1 SDIO适配器 329 19.3.2 SDIO AHB接口 336 19.4 卡功能描述 336 19.4.1 卡识别模式 336 19.4.2 卡复位 336 19.4.3 操作电压范围确认 337 19.4.4 卡识别过程 337 19.4.5 写数据块 338 19.4.6 读数据块 338 19.4.7 数据流操作,数据流写入和数据流读出(只适用于多媒体卡) 338 19.4.8 擦除:成组擦除和扇区擦除 339 19.4.9 宽总线选择和解除选择 340 19.4.10 保护管理 340 19.4.11 卡状态寄存器 342 19.4.12 SD状态寄存器 344 19.4.13 SD I/O模式 347 目录 STM32F10xxx参考手册 11/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 19.4.14 命令与响应 348 19.5 响应格式 350 19.5.1 R1(普通响应命令) 351 19.5.2 R1b 351 19.5.3 R2(CID、CSD寄存器) 351 19.5.4 R3(OCR寄存器) 351 19.5.5 R4(快速I/O) 352 19.5.6 R4b 352 19.5.7 R5(中断请求) 352 19.5.8 R6(中断请求) 353 19.6 SDIO I/O卡特定的操作 353 19.6.1 使用SDIO_D2信号线的SDIO I/O读等待操作 353 19.6.2 使用停止SDIO_CK的SDIO读等待操作 353 19.6.3 SDIO暂停/恢复操作 354 19.6.4 SDIO中断 354 19.7 CE-ATA特定操作 354 19.7.1 命令完成指示关闭 354 19.7.2 命令完成指示使能 354 19.7.3 CE-ATA中断 354 19.7.4 中止CMD61 354 19.8 硬件流控制 354 19.9 SDIO寄存器 355 19.9.1 SDIO电源控制寄存器(SDIO_POWER) 355 19.9.2 SDIO时钟控制寄存器(SDIO_CLKCR) 355 19.9.3 SDIO参数寄存器(SDIO_ARG) 356 19.9.4 SDIO命令寄存器(SDIO_CMD) 356 19.9.5 SDIO命令响应寄存器(SDIO_RESPCMD) 357 19.9.6 SDIO响应1..4寄存器(SDIO_RESPx) 357 19.9.7 SDIO数据定时器寄存器(SDIO_DTIMER) 358 19.9.8 SDIO数据长度寄存器(SDIO_DLEN) 358 19.9.9 SDIO数据控制寄存器(SDIO_DCTRL) 358 19.9.10 SDIO数据计数器寄存器(SDIO_DCOUNT) 360 19.9.11 SDIO状态寄存器(SDIO_STA) 360 19.9.12 SDIO清除中断寄存器(SDIO_ICR) 361 19.9.13 SDIO中断屏蔽寄存器(SDIO_MASK) 362 19.9.14 SDIO FIFO计数器寄存器(SDIO_FIFOCNT) 364 19.9.15 SDIO数据FIFO寄存器(SDIO_FIFO) 364 19.9.16 SDIO寄存器映像 365 20 USB全速设备接口(USB) 366 20.1 USB简介 366 20.2 USB主要特征 366 20.3 USB功能描述 367 20.3.1 USB功能模块描述 368 20.4 编程中需要考虑的问题 369 20.4.1 通用USB设备编程 369 20.4.2 系统复位和上电复位 369 20.4.3 双缓冲端点 372 20.4.4 同步传输 373 20.4.5 挂起/恢复事件 374 目录 STM32F10xxx参考手册 12/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 20.5 USB寄存器描述 375 20.5.1 通用寄存器 375 20.5.2 端点寄存器 380 20.5.3 缓冲区描述表 382 20.5.4 USB寄存器映像 385 21 控制器局域网(bxCAN) 387 21.1 bxCAN简介 387 21.2 bxCAN主要特点 387 21.2.1 总体描述 388 21.3 bxCAN工作模式 389 21.3.1 初始化模式 390 21.3.2 正常模式 390 21.3.3 睡眠模式(低功耗) 390 21.3.4 测试模式 390 21.3.5 静默模式 390 21.3.6 环回模式 391 21.3.7 环回静默模式 391 21.4 bxCAN功能描述 392 21.4.1 发送处理 392 21.4.2 时间触发通信模式 393 21.4.3 接收管理 393 21.4.4 标识符过滤 395 21.4.5 报文存储 398 21.4.6 出错管理 399 21.4.7 位时间特性 400 21.5 bxCAN中断 402 21.6 CAN 寄存器描述 403 21.6.1 寄存器访问保护 403 21.6.2 控制和状态寄存器 403 21.6.3 邮箱寄存器 411 21.6.4 CAN过滤器寄存器 415 21.6.5 bxCAN寄存器列表 419 22 串行外设接口(SPI) 422 22.1 SPI简介 422 22.2 SPI和I2S主要特征 422 22.2.1 SPI特征 422 22.2.2 I2S功能 423 22.3 SPI功能描述 424 22.3.1 概述 424 22.3.2 SPI从模式 426 22.3.3 SPI主模式 427 22.3.4 单工通信 428 22.3.5 状态标志 428 22.3.6 CRC计算 429 22.3.7 利用DMA的SPI通信 429 22.3.8 错误标志 430 22.3.9 关闭SPI 430 22.3.10 SPI中断 430 目录 STM32F10xxx参考手册 13/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 22.4 I2S功能描述 431 22.4.1 I2S功能描述 431 22.4.2 支持的音频协议 432 22.4.3 时钟发生器 437 22.4.4 I2S主模式 438 22.4.5 I2S从模式 439 22.4.6 状态标志位 440 22.4.7 错误标志位 441 22.4.8 I2S中断 441 22.4.9 DMA功能 441 22.5 SPI和I2S寄存器描述 442 22.5.1 SPI控制寄存器1(SPI_CR1)(I2S模式下不使用) 442 22.5.2 SPI控制寄存器2(SPI_CR2) 443 22.5.3 SPI 状态寄存器(SPI_SR) 444 22.5.4 SPI 数据寄存器(SPI_DR) 445 22.5.5 SPI CRC多项式寄存器(SPI_CRCPR) 446 22.5.6 SPI Rx CRC寄存器(SPI_RXCRCR) 446 22.5.7 SPI Tx CRC寄存器(SPI_TXCRCR) 446 22.5.8 SPI_I2S配置寄存器(SPI_I2S_CFGR) 447 22.5.9 SPI_I2S预分频寄存器(SPI_I2SPR) 448 22.5.10 SPI 寄存器地址映象 449 23 I2C接口 450 23.1 I2C简介 450 23.2 I2C主要特点 450 23.3 I2C功能描述 451 23.3.1 模式选择 451 23.3.2 I2C从模式 452 23.3.3 I2C主模式 454 23.3.4 错误条件 456 23.3.5 SDA/SCL线控制 457 23.3.6 SMBus 457 23.3.7 DMA请求 459 23.3.8 包错误校验(PEC) 460 23.4 I2C中断请求 461 23.5 I2C调试模式 462 23.6 I2C寄存器描述 462 23.6.1 控制寄存器1(I2C_CR1) 462 23.6.2 控制寄存器2(I2C_CR2) 464 23.6.3 自身地址寄存器1(I2C_OAR1) 465 23.6.4 自身地址寄存器2(I2C_OAR2) 465 23.6.5 数据寄存器(I2C_DR) 465 23.6.6 状态寄存器1(I2C_SR1) 466 23.6.7 状态寄存器2 (I2C_SR2) 468 23.6.8 时钟控制寄存器(I2C_CCR) 469 23.6.9 TRISE寄存器(I2C_TRISE) 470 23.6.10 I2C寄存器地址映象 471 24 通用同步异步收发器(USART) 472 24.1 USART介绍 472 24.2 USART主要特性 472 目录 STM32F10xxx参考手册 14/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 24.3 USART功能概述 473 24.3.1 USART 特性描述 474 24.3.2 发送器 475 24.3.3 接收器 477 24.3.4 分数波特率的产生 480 24.3.5 多处理器通信 481 24.3.6 校验控制 482 24.3.7 LIN(局域互联网)模式 483 24.3.8 USART 同步模式 485 24.3.9 单线半双工通信 487 24.3.10 智能卡 487 24.3.11 IrDA SIR ENDEC 功能块 488 24.3.12 利用DMA连续通信 490 24.3.13 硬件流控制 491 24.4 USART中断请求 492 24.5 USART模式配置 493 24.6 USART寄存器描述 494 24.6.1 状态寄存器(USART_SR) 494 24.6.2 数据寄存器(USART_DR) 495 24.6.3 波特比率寄存器(USART_BRR) 496 24.6.4 控制寄存器1(USART_CR1) 496 24.6.5 控制寄存器2(USART_CR2) 498 24.6.6 控制寄存器3(USART_CR3) 499 24.6.7 保护时间和预分频寄存器(USART_GTPR) 501 24.6.8 USART寄存器地址映象 502 25 器件电子签名 503 25.1 存储器容量寄存器 503 25.1.1 闪存容量寄存器 503 25.2 产品唯一身份标识寄存器(96位) 503 26 调试支持(DBG) 505 26.1 概况 505 26.2 ARM参考文献 506 26.3 SWJ调试端口(serial wire and JTAG) 506 26.3.1 JTAG-DP和SW-DP切换的机制 507 26.4 引脚分布和调试端口脚 507 26.4.1 SWJ调试端口脚 507 26.4.2 灵活的SWJ-DP脚分配 507 26.4.3 JTAG脚上的内部上拉和下拉 508 26.4.4 利用串行接口并释放不用的调试脚作为普通I/O口 508 26.5 STM32F10xxx JTAG TAP 连接 509 26.6 ID 代码和锁定机制 509 26.6.1 微控制器设备ID编码 509 26.6.2 边界扫描TAP 510 26.6.3 Cortex-M3 TAP 510 26.6.4 Cortex-M3 JEDEC-106 ID代码 511 26.7 JTAG调试端口 511 26.8 SW调试端口 512 目录 STM32F10xxx参考手册 15/524 参照2008年12月 RM0008 Reference Manual 英文第7版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本 26.8.1 SW协议介绍 512 26.8.2 SW协议序列 512 26.8.3 SW-DP状态机(Reset, idle states, ID code) 513 26.8.4 DP和AP读/写访问 513 26.8.5 SW-DP寄存器 513 26.8.6 SW-AP寄存器 514 26.9 对于JTAG-DP或SWDP都有效的AHB-AP (AHB 访问端口) 514 26.10 内核调试 515 26.11 调试器主机在系统复位下的连接能力 515 26.12 FPB (Flash patch breakpoint) 515 26.13 DWT(data watchpoint trigger) 516 26.14 ITM (instrumentation trace macrocell) 516 26.14.1 概述 516 26.14.2 时间戳包,同步和溢出包 516 26.15 MCU调试模块(MCUDBG) 517 26.15.1 低功耗模式的调试支持 517 26.15.2 支持定时器、看门狗、bxCAN和I2C的调试 518 26.15.3 调试MCU配置寄存器 518 26.16 TPIU
1设计要求 要求系统按如下方式进入和退出睡眠模式: 在系统启动2秒后,将RTC在3秒钟之后配置为产生一个报警事件,接着通过WFI指令使系统进入停机模式。 如果要唤醒系统到正常模式,可通过按Key按钮;否则,在3秒钟后,会产生RTC报警中断自动将系统唤醒。 一旦退出停机模式,系统时钟被配置成先前的状态(在停机模式下,外部高速振荡器HSE和PLL是不可用的)。 经过一段延时之后,系统将再次进入停机状态,并可按上述操作无限重复。 2 硬件电路设计 硬件电路采用与7.1小节应用实例一样硬件电路,可见图7-10。其中Key按钮用于通过PB9产生一个外部中断, LED1、LED2、LED3、LED4则用于显示处理器所处的模式和中断触发情况。 3 软件程序设计 根据任务要求,程序内容主要包括: (1) 配置GPIOB口,配置RTC,配置外部中断; (2) 配置PB口第9个引脚作为外部中断,下降延触发;配置RTC报警中断,上升沿触发; (3) 两个中断服务子程序的内容分别是:切换LED2和LED3灯的状态; 整个工程包含3个源文件:STM32F10x.s、stm32f10x_it.c和main.c,其中STM32F10x.s为启动代码,所有中断 服务子程序均在stm32f10x_it.c中,其它函数则在main.c中。下面分别介绍相关的函数,具体程序清单见参考程序。 函数SYSCLKConfig_STOP用于当处理器从停机模式唤醒之后,配置系统时钟、使能HSE和PLL,并以PLL作为系统时钟源。当处理器处理停机模式的时候,HSE、PLL是不可用的。 函数GPIO_Configuration用于配置GPIO的PC6、PC7、PC8、PC9和PB9。 函数EXTI_Configuration用于配置外部中断线9(PB9)和17(RTC报警)。 函数NVIC_Configuration配置NVIC及中断向量表,这里主要是配置外部中断线9和17。 函数EXTI9_5_IRQHandler处理按钮Key(PB9)所触发的中断,其主要作用是将LED2灯的状态翻转一次。 函数RTCAlarm_IRQHandler处理RTC报警所触发的中断,其主要作用事将LED3 灯的状态翻转一次,如果设置了唤醒标志则清除之。 运行过程: (1) 使用Keil uVision3 通过ULINK 2仿真器连接EduKit-M3实验平台,打开实验例程目录PWR_TEST子目录下的PWR.Uv2 例程,编译链接工程; (2) 选择软件调试模式,点击MDK 的Debug菜单,选择Start/Stop Debug Session项或Ctrl+F5键,在逻 辑分析仪中添加GPIOC_ODR.6、GPIOC_ODR.7、GPIOC_ODR.8、GPIOC_ODR.9,点击Run按钮即可在逻辑分析 仪中看到如图7-14,还可用Peripherals-General Port-GPIOB来模拟KEY按钮的动作; (3) 选择硬件调试模式,选择Start/Stop Debug Session项或Ctrl+F5键,下载程序并运行,观察LED灯 的变化情况。注意,当目标系统进入停机模式之后,将无法使用仿真器进行调试了; (4) 退出Debug模式,打开Flash菜单>Download,将程序下载到EduKit-M3实验平台的Flash中,按RESET键复位,观察 LED灯的情况,正常情况应为:系统处于运行模式时LED1亮、LED4灭;系统处于停机状态时LED1灭、LED4亮; 当按下KEY按钮时LED2灯状态发生反转;当发生RTC报警时LED3状态发生反转。

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧