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

STM32F103VBT6 UART1 在IAP后无法正常使用

[复制链接]
chenpeng8848 提问时间:2016-9-1 10:19 /
使用的了管方提供的IAP程序下载了我的程序,其他功能都正常指示UART1/3的无法使用的。。
#define MAIN_H
#include "main.h"

int main(void)
{
          uint32_t i;
        
                for(i = 0;i < 0x0000fffff;i++){;}                                   
                RCC_Configuration();
                NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x4000);
                //        NVIC_VectTab_FLASH
                //        NVIC_VectTab_RAM        
                RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1|RCC_AHBPeriph_DMA2,ENABLE);                          
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|
                                                                                                         RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|
                                                                                                         RCC_APB2Periph_AFIO|RCC_APB2Periph_TIM1 |
                                                                                                         RCC_APB2Periph_USART1 ,ENABLE);                        
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 |RCC_APB1Periph_USART3, ENABLE);
                        

                Ctrlbox_System_Init();        
                Varinit();                  
        

          TIM_Cmd(TIM2, ENABLE);                           //TIM2ʹÄÜ
                USART_Cmd(USART1, ENABLE);                 //UART1ʹÄÜ
                USART_Cmd(USART3, ENABLE);           //UART3ʹÄÜ               
                __enable_irq();//¿ªÆô×ÜÖжϠ              
                for(i = 0;i < 0x0000fffff;i++){;}                     /*????*/
                        
               
                for(;;)                                                                                                                 //È·ÈϵÚÒ»´Î¿ª¹ØÁ¿¶ÁÈë        
                {if(InputProcEnable == 1){break;}  //¿ª¹ØÁ¿¶ÁÈëÖÕֹѭ»·
                 else{Uart1_Comm_Proc();}          //¿ª¹ØÁ¿ÎÞ·¨¶ÁÈë±£³ÖͨÐÅ
                }               
                while(1);

void USART1_IRQHandler (void)//UART1ÖжϺ¯Êý
{

                uint8_t  temp;
        
                if(USART_GetITStatus(USART1, USART_IT_RXNE)== SET)  //½ÓÊÕ±ê־λ
                {                        
                                USART_ClearITPendingBit(USART1,USART_IT_RXNE);                         //Çå³ýÖжϱêÖ¾
                            temp = USART_ReceiveData(USART1);                                                   //¶ÁÈ¡Êý¾Ý               
                        
                                        //USART_SendData(USART1, temp);//¶ÁÈ¡·´À¡        
                                        if ((Uart1_Control.CommReceiveHead == 0) && (Uart1_Control.CommReceiveTail == 0)) //Ö¡Æôʼ±êÖ¾ÎÞ£¬Ö¡½áÊø±êÖ¾ÎÞ£¬
                                        {
                                                        if (temp == '{')//Åж¨Ê××Ö½ÚΪ¡°{¡±
                                                        {                           


收藏 评论1 发布时间:2016-9-1 10:19

举报

1个回答
chenpeng8848 回答时间:2016-9-1 10:24:08
我在主函数初始化中加了
                USART_SendData(USART1, 0x31);
                USART_SendData(USART3, 0x31);
两个发送字符函数就好用了,求高手指点
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版