奥义u

    1. STM32F205串口1使用不正常,输出错误 10/6488 stm32/stm8 2014-06-24
      问题都解决了,做以下结贴: 第一个问题: USART1是由PCLK2提供时钟,故读取如下的值:   apbclock_SYSCLK = RCC_ClocksStatus.SYSCLK_Frequency;// 系统时钟   apbclock_PCLK2 = RCC_ClocksStatus.PCLK2_Frequency; //PCLK2值   Uart_Init();     // 使用的波特率是9600   baud_div = USART1->BRR;    // 串口分频值 可以读出apbclock_SYSCLK = 0x7270E0000(120M) apbclock_PCLK2 = 0x3938700(60M) baud_div = 0x186A(6250) 计算baudrate = apbclock_PCLK2 / baud_div = 9600 一切都是如此完美 可,这一切都是假象,在stm32f2xx.h中有这么一句 #define HSE_VALUE            ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ 原来这里把外围晶振定义为了25MHZ,修改为12MHZ, 从新读取apbclock_SYSCLK = 0x57600000(57.6M) apbclock_PCLK2 = 0x28800000(28.8M) baud_div = 0xBB8(3000) USART1使用的实际频率是28.8MHZ,28800000 / 6250 = 4608(实际的波特率) 原来这才是真相啊 之后修改了RCC寄出器一些寄存器的值,使系统时钟达到120MHZ就可以了 第二个问题:打开NVIC_Config();会“死”在中断中 如4楼所说,因为开启了串口发送中断,但是没有对TXE中断进行处理,感谢4楼的回答 datesheet有如下说明: Bit 7TXE: Transmit data register empty This bit is set by hardware when the content of the TDR register has been transferred into the shift register. An interrupt is generated if the TXEIE bit =1 in the USART_CR1 register. It is cleared by a write to the USART_DR register. 0: Data is not transferred to the shift register 1: Data is transferred to the shift register) 即当向USART_DR中写数据的时候才可以将标志位清楚。所以我将中断函数做了如写的修改 void USART1_IRQHandler(void) {     if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)     {         UART5_RcvBuf[UART5_COUNT++] = USART_ReceiveData(USART1);                        //USART1->SR &= ~0x20;                                                                                        }         if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)         {                        UART1_SendCount++;                 /* Write one byte to the transmit data register */                 USART_SendData(USART1, 0xAA);                                 if(UART1_SendCount >= 10)                 {                         /* Disable the USART1 Transmit interrupt */                         USART_ITConfig(USART1, USART_IT_TXE, DISABLE);                 }         } }
    2. 语言模块SYN6288无输出 7/6886 51单片机 2014-06-20
      lcofjp 发表于 2014-6-20 11:35 我用过,工作正常。
      试过了,真的是因为BN0接地了的原因,谢谢了哈:)
    3. 语言模块SYN6288无输出 7/6886 51单片机 2014-06-20
      lcofjp 发表于 2014-6-20 11:35 我用过,工作正常。
      联系了厂商。打算把BN0脚连地的地方割开,然后直接连上喇叭试试:Cry:
    4. 语言模块SYN6288无输出 7/6886 51单片机 2014-06-20
      lcofjp 发表于 2014-6-20 09:55 不明白你为啥接地,这不属于输出短路么?
      你有用过吗?
    5. 语言模块SYN6288无输出 7/6886 51单片机 2014-06-20
      lcofjp 发表于 2014-6-19 18:20 那11引脚(BN0)是什么情况呢?
      图上不是有吗,直接接地的。
    6. STM32F205串口1使用不正常,输出错误 10/6488 stm32/stm8 2014-06-16
      lcofjp 发表于 2014-6-14 16:26 //NVIC_Config(); 这个函数开启了串口1的中断,而你又在发送函数中开启了TXE中断,并且你中断函数里没有对 ...
      1.我查看了下数据手册,上面说TXE中断标志位需要通过软件清楚,所以我在发送函数最后加了一句USART1->CR1 &= 0xff7f;可是结果还是死在循环中。 2.为何在数据手册中说RXNE中断也需要通过软件清楚标志位,可是正常使用的时候开启RXNE中断,每次只需要读取其中接收到的数据,程序就不会死在循环中?
    7. STM32F205串口1使用不正常,输出错误 10/6488 stm32/stm8 2014-06-14
      kemasz 发表于 2014-6-14 15:34 有心无力啊~~~~~~~~~
      为什么这么说?
    8. ????什么东西??????????
    9. MSP430F5438 ADC12学习笔记 1/2682 微控制器 MCU 2014-01-14
      程序使用定时唤醒采样方式,每隔一段时间唤醒,进行AD采样。问题在于,如果不使用内部2.5V基准电压,进入低功耗时候,电流在20uA左右;使用内部2.5V基准电压,进入低功耗前关闭(ADC12CTL0 &= ~(ADC12ON + REFON);),结果进入低功耗时,电流在500uA左右,这是为什么? 求大神解答下
    10. 感谢分享,拜读了。

最近访客

< 1/1 >

统计信息

已有12人来访过

  • 芯积分:--
  • 好友:--
  • 主题:2
  • 回复:10

留言

你需要登录后才可以留言 登录 | 注册


834492956 2014-8-18
我QQ:834492956
834492956 2014-8-18
https://bbs.eeworld.com.cn/thread-440189-1-1.html   
“RCC寄出器一些寄存器的值,使系统时钟达到120MHZ”的“RCC寄出器”是哪些啊??
查看全部