OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3827|回复: 2

求助:通过寄存器操作串口,向PC机发送hello world,但是串口助手接收不到,是是什么原因?(mini板子)

[复制链接]

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
发表于 2014-11-18 21:49:51 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include"stm32f10x.h" #include"string.h" int main(void) { char a[]="hello world!"; unsigned char i=0; unsigned char temp=0; RCC->CR|=0x00010000; //外部高速时钟使能HSEON while(!(RCC->CR>>17)); //等待外部时钟就绪 RCC->CFGR=0X00000400; //APB1=DIV2(PLL二分频作为APB1的时钟);APB2=DIV1(72MHZ);AHB=DIV1, //此位设置保证APB1时钟小于等于36MHZ RCC->CFGR=0x1C0400; //设置9倍频 RCC->CFGR|=1<<16; //PLLSRC ON FLASH->ACR|=0x32; //FLASH 2个延时周期, /*若不延时,程序直接跑飞,CPU速度快,这个延时,是为了等待FLASH, FLASH的访问速度最大小于等于24MHZ 0个等待周期,当0<SYSCLK<24MHZ ,0x30 1个等待周期,当24MHZ<SYSCLK<=48MHZ ,0x31 2个等待周期,当48MHZ<SYSCLK<=72MHZ ,0x32 */ RCC->CR|=0x01000000; //PLLON while(!(RCC->CR>>25)); //PLLRDY,PLL时钟就绪标志位,等待PLL锁定 RCC->CFGR|=0x00000002; //设置PLL作为系统时钟,SW【1:0】系统时钟切换 while(temp!=0x02) //等待PLL作为系统时钟设置成功,SWS【1:0】系统时钟切换状态 { temp=RCC->CFGR>>2; //仅仅是移位,并没有改变CFGR寄存器的其他位的值 temp&=0x03; } RCC->APB2ENR|=1<<14; //USART1时钟使能; RCC->APB2ENR|=1<<2; //GPIOA时钟使能;PA9为TXD,PA10为RXD RCC->APB2RSTR|=1<<14; //串口1复位 RCC->APB2RSTR&=~(1<<14);//停止复位 GPIOA->CRH=0x444444B4; //PA9为TXD ,配置为复用功能推挽输出,速度为50MHZ ,1011, GPIOA->CRH=0x444448B4; //PA10为RXD,配置为上拉下拉输入模式,1000 USART1->BRR=0x1D4C; //设置串口1波特率为9600; /* Rx/Tx波特率=fck/(16*USARTDIV),其中USART分为小数部分和整数部分,fck为其时钟频率 在BRR寄存器中设置的就是USARTDIV的值,其中第四位为小数位,高12位为整数位 */ USART1->CR1=0x200C; //串口口模块使能,使能接收,发送,1个起始位,8个数据位,1位停止位,禁止校验, while(1) { //for(i=0;a!='\0';i++) for(i=0;i<strlen(a);i++) { while((USART1->SR&0x40)==0); USART1->DR=a; } while((USART1->SR&0x40)==0); USART1->DR='\n'; } } [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

回复【2楼】正点原子: --------------------------------- 问题已解决; 见笑了,看着你的pdf文档,以及自己的理解写的!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
 楼主| 发表于 2014-11-18 21:49:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
问题已解决;
见笑了,看着你的pdf文档,以及自己的理解写的!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-18 23:40:17 | 显示全部楼层
楼主这寄存器用的比我还牛逼啊。
估计你的波特率设置有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表