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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版