高级会员

- 积分
- 647
- 金钱
- 647
- 注册时间
- 2013-3-28
- 在线时间
- 64 小时
|
1金钱
如题,我程序用的是485通讯,在主程序中加入了RS485_Init(115200);这个初始化函数,如下:void RS485_Init(u32 bound)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;// GPIOB.11,RS485方向控制
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
USART1_Init(bound);
}
这个函数我一直用的好好的,前几天生产了一批板子芯片还是STM32F103RBT6 怎么突然就不能正常收发数据了,又的板子能进串口接收中断,但该发送出来的数据只能通过USB转TTL接收到,插上我原本配的433M模块就发不出来,这个问题也 太妖了吧。一开始我以为是STM芯片有问题,今天换了2批4片不同批次相同型号的STM32芯片 也都不行,刚无意中把这个初始化程序改为USART1_Init(115200);就立马能收发了,我也是醉了,各位同行吗,有没有接触过这个问题呢,我搞了2天了都,关键出货都2K多了 居然发现这个问题
|
最佳答案
查看完整内容[请看2#楼]
找到问题了,是我端口初始化的原因,太不仔细了 原先有句SEL = 0;被我无意中删除了,哎 粗心大意伤不起啊!
|