问答

汇集网友智慧,解决技术难题

yzdel7

TA的家园币:75  

  • N32G455 RS485中断接收函数进入不了,请问是什么原因呀?

    RS485能够发送数据,但是接收数据时一直进不了RS485中断函数,请大佬们指点一下voidRS485_Init(void){GPIO_InitTypeGPIO_InitStruct;USART_InitTypeUSART_InitStruct;NVIC_InitTypeNVIC_InitStruct;//使能时钟(USART2在APB1总线上)RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA,ENABLE);RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_USART2,ENABLE);//配置方向控制引脚PA1GPIO_InitStruct.Pin=RS485_EN_GPIO_PIN;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitPeripheral(RS485_EN_GPIO_PORT,&GPIO_InitStruct);GPIO_ResetBits(RS485_EN_GPIO_PORT,RS485_EN_GPIO_PIN);//默认接收模式//配置USART2TX引脚PA2(复用推挽输出)GPIO_InitStruct.Pin=GPIO_PIN_2;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitPeripheral(GPIOA,&GPIO_InitStruct);//配置USART2RX引脚PA3(浮空输入)GPIO_InitStruct.Pin=GPIO_PIN_3;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitPeripheral(GPIOA,&GPIO_InitStruct);//USART参数配置USART_InitStruct.BaudRate=9600;//波特率;USART_InitStruct.WordLength=USART_WL_8B;USART_InitStruct.StopBits=USART_STPB_1;USART_InitStruct.Parity=USART_PE_NO;USART_InitStruct.HardwareFlowControl=USART_HFCTRL_NONE;USART_InitStruct.Mode=USART_MODE_RX|USART_MODE_TX;USART_Init(USART2,&USART_InitStruct);//使能接收中断USART_ConfigInt(USART2,USART_INT_RXDNE,ENABLE);USART_ConfigInt(USART2,USART_INT_IDLEF,ENABLE);//配置NVICNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStruct.NVIC_IRQChannel=USART2_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct);//使能U

    N32G455 RS485 原因 接收 函数

    2025-04-24 17
  • HC32F472如何重映射中断向量表

    犹豫增加了Bootloader,需要在APP中重映射中断向量表sct文件,SCB->VTOR都修改了SysTick中断正常,其他中断飞了(不安预期中断跑)请问这个芯片是否还要修改其他什么地方?

  • 哪位前辈能告诉我,Pic16f883测电压不准是怎么回事?

    我手头有两只pic16f883,不想报废,于是参考别人代码编写了2路A/D转换程序,采用Proteus仿真误差很大,明明是5V参考电压,结果显示8V多,不知哪里出问题了?时钟从1MHZ~20MHZ都是一样的结果,不知是Proteus仿真软件的bug还是代码有问题,请大侠帮忙//名称:数码管显示两路A/D转换结果//-----------------------------------------------------------------//说明:调节RV1和RV2时,两路模拟电压将显示在集成式数码管上.////-----------------------------------------------------------------#include__CONFIG(0x2004);//??????//配置字要在头文件后PROTEUS仿真也要有改为__CONFIG(0x2002);也不行//bit13=1禁止在线调试bit12=0关系RB3数字口bit11=0禁止故障保护时钟监视器bit10=0禁止内外时钟切换//bit9/8=00禁止欠压复位bit7=0使能RAM保护bit6=0使能ROMbit5=0内部复位RB3为数字引脚//bit4=0使能上电延时定时器bit3=0禁止看门狗bit2:0=100INTOSCO振荡,RA6/7为I/O口手册14.1配置位#defineINT8Uunsignedchar#defineINT16Uunsignedint#define_XTAL_FREQ4000000UL//共阳数码管0~9的数字段码,最后一位为黑屏constINT8USEG_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};//两路模拟转换结果显示缓冲,显示格式为:X.XXX.XX,第4位和第8位不显示volatileINT8UDisplay_Buffer[]={0,0,0,10,0,0,0,10};//1.108ms@1MHZvoiddelay_xms(INT16Ums){INT8Ui;while(ms--)for(i=0;i<20;i++);}//-----------------------------------------------------------------//对通道Channel进行模数转换,转换结果分解存入显示缓冲//-----------------------------------------------------------------voidADC_Convert(INT8UChannel){//设置ADCON0寄存器的通道选择位CHS[3..0]=Channel(0~13)//选择通道后等待CHS3=Channel>>3;CHS2=Channel>>2;CHS1=Channel>>1;CHS0=Channel>>0;//__delay_us(1);//选择通道后等待delay_xms(10);//开始

    电压 PIC16F bi go AD NN

    2025-03-17 6
  • cs32g030用定时器做呼吸灯的延迟

    intmain(void){timer3_init();pwm_config1();uint16_tpwm_val=500;uint8_tdir=1;while(1){if(T1000ms_flag==1)//1000ms触发一次{T1000ms_flag=0;pwm_val+=0;pwm_duty_config(TM2,pwm_val);if(pwm_val>=1000)pwm_val=100;}}}pwm_val+=0;灯可以亮,pwm_val+=10(或其他值)灯不亮;