PIC 寄存器不能赋值问题

发布者:郑大大最新更新时间:2016-09-23 来源: eefocus关键字:PIC  寄存器  不能赋值 手机看文章 扫描二维码
随时随地手机看文章
最近换了一个型号的单片机,把其他型号的串口程序复制过来(修改不同的地方)之后,串口竟然还是不会运行。调试发现初始化串口寄存器时寄存器的值并没有发生改变。如图所示:
PIC 寄存器不能赋值问题 - zmurder - 起点电子工作室
从图中可以看出,程序31行已经将UTXEN赋值为1,但是从下面的变量窗口中看到的UTXEN却是0.
 
原因:仔细查找datasheet中的描述,发现其中是这样说的:
PIC 寄存器不能赋值问题 - zmurder - 起点电子工作室
 也就是说需要先使能串口,再是串口发送才可以。按照修改之后果然可以了。看来还是需要认真的按照datasheet来编写程序啊。
另外:以前发现的寄存器不能写入的情况是因为中间有中断打断了,为什么中断打断了就不能写入原因还不清楚。
关键字:PIC  寄存器  不能赋值 引用地址:PIC 寄存器不能赋值问题

上一篇:PIC16f1937 nRF24L01
下一篇:PIC单片机定时器1

推荐阅读最新更新时间:2024-03-16 15:11

ARM处理器模式和片内寄存器, ARM 异常及中断
中断和异常的区别: 中断时从外至内的, 异常时由内发出的 一、存储器格式(字对齐): Arm体系结构将存储器看做是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列。作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB。 存储器格式 1、大端格式:高字节在低地址,低字节在高地址; 2、小端格式:高字节在高地址,低字节在低地址; 指令长度: Arm微处理器的指令长度是32位的,也可以为16位(thumb状态下)。Arm微处理器中支持字节(8位),半字(16位),字(32位)三种数据类型,其中,字需要4字
[单片机]
ARM处理器模式和片内<font color='red'>寄存器</font>, ARM 异常及中断
GPIO寄存器的地址怎么寻找
由上图知,GPIOC的地址就是在这个PERIPH_BASE地址的基础上偏移得到得。 我们可以一步一步的计算一下GPIOC的地址是多少。 0x40000000 + 0x10000 + 0x1000 == 0x4001 1000 我们的计算结果和参考手册上的一样。注意:这些都是芯片上面真实的物理地址。如果需要运行操作系统,由于在操作系统中,程序的地址对应的是虚拟内存,在操作系统中对GPIO进行操作时,需要将这个真实的物理地址映射到虚拟地址上面去,这样操作系统才能对GPIO进行操作。 这个是GPIO上的各个寄存器,它被装在一个结构体里面。 由这张图可知,这也就是为什么GPIO的寄存器仅通过偏移地址就可以能
[单片机]
一种高性能便携式PIC单片机湿度检测仪的研制
    摘 要: 介绍了一种高性能便携式PIC单片机湿度检测仪的研制,详细阐明了有关的工作原理和关键技术。本测试仪充分应用PIC单片机自身的软硬件资源,具有智能化,小型便携、可编程等优点,在农业、水文系统、环境监测、气象等许多领域具有广泛的应用。     关键词: PIC单片机 湿度测试仪 土壤含水量     适时准确地测量周围环境的湿度和土壤含水量在国民经济发展的许多领域中具有广泛的应用,如在农业上为了科学地对土壤进行管理,需要经常测试土壤含水量;在水利工程中,如水文站、堤坝上也需经常测试土壤含水量,此外,土壤湿度测量在环保、气象、国防施工中更是不可缺少的测量项目。如何使这种繁琐的测量以及相关数据处理实现
[应用]
MCS-51单片机的串行I/O口及控制寄存器
1、串行口的结构 MCS-51串行口结构框图示于图。由图可见 MCS-51 单片机 串行口主要由两个物理上独立的串行数据缓冲寄存器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。两个特殊功能寄存器SCON和PCON用来控制串行口的工作方式和波特率。发送缓冲寄存器SBUF只能写,不能读;接收缓冲寄存器SBUF只能读,不能写。两个缓冲寄存器共用一个地址99H,可以用读/写指令区分。 串行发送时,通过 MOV SBUF,A 写指令,CPU把累加器A的内容写入发送的SBUF(99H),再由TxD引脚一位一位地向外发送;串行接收时,接收端从RxD一位一位地接收数据,直到收到一个完整的字符数据后通知CPU,再通过 M
[单片机]
MCS-51单片机的串行I/O口及控制<font color='red'>寄存器</font>
stm32 AD模数转换[操作寄存器+库函数]
stm32f103最少有2个AD模数转换器,每个ADC都有18个通道,可以测量16个外部和2个内部模拟量。最大转换频率为1Mhz,也就是转换时间为1us(在 ADCCLK = 14Mhz,采样周期为1.5个时钟周期时)。最大时钟超过14Mhz,将导致ADC转换准确度降低。stm32的ADC是12位精度的。 stm32的ADC转换有两种通道,规则通道和注入通道,注入通道可以抢占式地打断规则通道的采样,执行注入通道采样后,再执行之前的规则通道采样,和中断类似。本例只使用规则通道实现独立模式的中断采样,这里不再赘述两种通道区别。 stm32的ADC可以由外部事件触发(例如定时器捕获,EXTI线)和软件触发(即在配置相关寄存器时,
[单片机]
PIC单片机存储体0或1的选用说明(程序)
  PIC单片机中级产品PIC16C6X的数据存储器通常分为两个存储体,即存储体0(Bank0)和存储体1(Bank1)。每个存储体都是由专用寄存器和通用寄存器两部分组成的。两个存储体中的一些寄存器单元实际上是同一个寄存器单元,却又具备有不同的地址。例如本版介绍的PIC16F84的状态寄存器STATUS-Reg的两个地址是03H和83H。又如通用寄存器也是如此。   不同型号的PIC单片机,其数据存储器的组成(即功能)是不完全相同的,所以设计人员一旦选用了某个PIC单片机的型号后,常要查找该单片机的数据存储器资料,以便编程用。   笔者以PIC16F84在MPLAB集成开发软件的环境下编写的源程序中,有关RB口(RB7、R
[单片机]
Msp430时钟设计与寄存器说明
4.1基础时钟模块+介绍 基础时钟模块+支持低系统消耗和超低功耗。采用三种片内时钟信号,用户可以选择合适 的性能和低功耗。基础时钟模块只需接一个外部电阻、一个或两个外部晶体、或者用振荡器, 通过软件控制。 基础时钟模块+有4 个时钟源: LFXT1CLK:由低频时钟晶体或外接32768Hz 时钟源产生的低频/高频振荡器或由标准晶 体、振荡器,或外部400KHz~16MHz的外部时钟源提供。 XT2CLK:可供选择的高频振荡器,由标准晶体、振荡器,或外部400KHz~16MHz 的外 部时钟源提供。 DCOCLK:片内可数字控制的振荡器。 VLOCLK:片内超低功耗、12KHz 的低频振荡器。 基础时钟模块可提
[单片机]
Msp430时钟设计与<font color='red'>寄存器</font>说明
Microchip推出40MHz PIC MCU
微芯科技最新推出的PIC微控制器(MCU)PIC18F45J10,电压为3V时频率可达40MHz。 这款8位MCU在单个28引脚封装中集成了模数转换器(ADC)、比较器、USART、SPI、I2C和PWM外设,以及32KB编程闪存。这些特性使PIC18F45J10系列器件特别适用于消费电子、家电、医疗和工业设备等各种成本价格敏感的应用领域。 从家电到消费电子等一系列成本敏感型设备的设计人员对其使用的8位MCU的性能和成本有更高的要求。PIC18F45J10、PIC18F44J10、PIC18F25J10和PIC18F24J10器件在降低了成本(降低了30%)和工作电压(3V)的同时维持了40MHz的工作性能,这是许多5
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved