STM32F103RBT6串行端口1被正常接收,发送过程也正常,但是TXD端子没有波形,该程序前几天也正常工作,很奇怪。 之后,当寻找并比较控制板串行通信例程时,发现在GPIO初始化中缺少一句话的gpio _ init structure.gpio _ speed=gpio _ speed _ 50m Hz; 加起来就正常了。
RCC _ AP B2 periphclockcmd (RCC _ AP B2 per iph _ gpioa|RCC _ AP B2 per iph _ gpioc,ENABLE ); 启用GPIOA,d时钟RCC _ AP B2 periphclockcmd (RS485 _ usart _ clk,ENABLE ); 使能USART1时钟gpio _ init structure.gpio _ pin=RS485 _ tx _ gpio _ pin; //p a9 gpio _ init structure.gpio _ mode=gpio _ mode _ af _ PP; //复用推挽gpio _ init structure.gpio _ speed=gpio _ speed _ 50m Hz; Gpio_init(RS485_tx_gpio_port,GPIO_InitStructure ); gpio _ init structure.gpio _ pin=RS485 _ rx _ gpio _ pin; //pa 10g Pio _ init structure.gpio _ mode=gpio _ mode _ IPU; //浮动输入gpio_init(RS485_rx_gpio_port,GPIO_InitStructure );