新手上路
- 积分
- 48
- 金钱
- 48
- 注册时间
- 2014-2-26
- 在线时间
- 0 小时
|
5金钱
int main(void)
{
unsigned char temp;
unsigned int i=0;
unsigned short m;
unsigned char key;
unsigned char recbuff[64];
NVIC_Configuration(); //NVIC_PriorityGroup_2 //0~3 | 0~3
delay_init(72);
LED_Init(); //推挽输出
for (temp=0;temp<6;temp++)
{
LED2_RED = !LED2_RED;
// feed_iwdg();
delay_ms(200);
}
delay_ms(500);
com_init(COM1,115200);
com_init(COM2,115200);
delay_ms(100);
pwm_init();
key_init();
exti_init();
//0~1000次 即一次为1000*0.1 = 100ms
timebase_init(1799,500); //APB1=72MHz,1799次分频,Ftim = 40kHz ,T = 0.025ms //0.025*500 = 0.125ms一次中断
printf("\r\n机器重启\r\n");
printf("\r\n等待中...\r\n");
debugstring("-------------\r\n");
memcpy(recbuff,"\x12\x34",2);
debugdata(recbuff,2,1);
......
......
}
com_init函数用库函数写的,应该没有什么问题。
void com_init(com_num num, u32 baud){
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA,ENABLE);
//| RCC_APB2Periph_AFIO
//USART1_TX PA.9
gpio_config.GPIO_Pin = GPIO_Pin_9;
gpio_config.GPIO_Speed = GPIO_Speed_50MHz;
gpio_config.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &gpio_config);
//USART1_RX   A.10
gpio_config.GPIO_Pin = GPIO_Pin_10;
gpio_config.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &gpio_config);
usart_init_pra.USART_BaudRate = baud;
usart_init_pra.USART_WordLength = USART_WordLength_8b;
usart_init_pra.USART_StopBits = USART_StopBits_1;
usart_init_pra.USART_Parity = USART_Parity_No; //不奇偶校验
usart_init_pra.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //硬件流控制失能
usart_init_pra.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //使能接收发送
USART_Init(USART1,&usart_init_pra); //初始化参数
//NVIC配置 分组已经配置
nvic_config.NVIC_IRQChannel = USART1_IRQn;
nvic_config.NVIC_IRQChannelPreemptionPriority = 3;
nvic_config.NVIC_IRQChannelSubPriority = 6;
nvic_config.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvic_config);
USART_ClearFlag(USART1,USART_FLAG_TC); //复位后被硬件置1,需要清除负责容易丢失第一个数据
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //允许接收中断
USART_Cmd(USART1,ENABLE); //使能串口1
}
大家可以不看代码,有人遇到过这样的现象没有?我至今还没有找到问题
|
|