完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
RS485查询发送方式输出乱码,用库函数的输出正常,说明硬件没什么问题,配置就RCC配置和GPIO口配置,其他都没有用到,
不知道到底什么原因,还请前辈们帮忙看下,多谢~~ int main(void) { STM32_Clock_Init(9); //系统时钟设置 // delay_init(72); //延时初始化 uart_init(72,9600); //串口初始化为9600 // LED_Init(); //初始化与LED连接的硬件接口 //清除TC标志 否则总丢失第一个字符 USART2->SR&=0XBF; while(NbrOfDataToTransfer--) { GPIOF->ODR |=1<<11; // 使能发信号 // USART_SendData(USART2,TxBuffer[TxCounter]); // TxCounter++; USART2->DR=TxBuffer[TxCounter++]; //总是丢失第一个字符,这个问题的根本原因是复位后,TC和TXE标志位默认都是1; //while在发送第一个字节时没有起到应有作用,直接跳出,接着写第二个字节,这时第一个字节还未发出,数据被破坏了 while((USART2->SR&0X40)==0);//等待发送结束 printf("rnSuccess of displayingrn"); //// //delay_ms(100); } } void uart_init(u32 pclk2,u32 bound) { float temp; u16 mantissa; u16 fraction; temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV mantissa=temp; //得到整数部分 fraction=(temp-mantissa)*16; //得到小数部分 mantissa<<=4; mantissa+=fraction; RCC->APB2ENR|=1<<2; //使能PORTA口时钟 RCC->APB2ENR|=1<<7; //使能PORTF口时钟 RCC->APB1ENR|=1<<17; //使能UART2时钟 GPIOA->CRL&=0XFFFFF0FF; GPIOA->CRL|=0X00000B00;//PA2 推挽复用 UART2_TX alternate function push-pull GPIOA->CRL&=0XFFFF0FFF; GPIOA->CRL|=0X00004000;//PA3: UART2_RX input floating //接收、发送方向控制 GPIOF->CRH&=0XFFFF0FFF; GPIOF->CRH|=0X00003000;//PF11 推挽输出 GPIOF->ODR|=0<<11; //PF11 输出高 发送模式 RCC->APB1RSTR|=1<<17; //复位串口2 RCC->APB1RSTR&=~(1<<17);//停止复位 //波特率设置 USART2->BRR=mantissa; // 波特率设置 USART2->CR1|=0X200C; //USART2使能 使能发送接收 USART2->CR1&=0XEBFF;//1个起始位、8个数据位、n个位停止、无校验 USART2->CR2&=0XCFFF; // 1个停止位 } |
|
相关推荐
4个回答
|
|
试了多个波特率都不行
|
|
|
|
485和232一个样,只是变成半双工了。你用232的方式检测一下,就可以确定问题了。
|
|
|
|
我在库函数版的程序上慢慢改动
发现改动到波特率这块输出才是乱码 temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV mantissa=temp; //得到整数部分 fraction=(temp-mantissa)*16; //得到小数部分 mantissa<<=4; mantissa+=fraction; 应该是这块的问题 uart_init(72,9600); //串口初始化为9600 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
527浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 10:41 , Processed in 0.982730 second(s), Total 83, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号