A man accused of trying to rob a north Houston truck stop while posing as a police officer is met with gunfire himself, prosecutors said.

With handcuffs dangling from his belt, Charles Brown, 20, allegedly walked into the Phillip's 66 truck stop off the Eastex Freeway early Saturday morning and announced he was a police officer.

"First, he says he's an undercover cop," said store owner Anand Patel. "Then he pulls out a gun out his pocket."

Patel said both his clerks working that morning, pulled guns out from behind the counter themselves.

"When (the alleged robber) discharged the round, my guys started unloading," Patel said after reviewing surveillance footage. 

For nearly 20 minutes, the clerks and Brown exchanged gunfire inside the store. At one point, Patel said the robber ran for cover in the aisles. Brown allegedly began throwing anything he could get his hands on at the clerks, including cans of motor oil and antifreeze.

"He's throwing (objects) like a hand grenade," Patel said still cleaning up the aftermath. 

With bullets flying and flammable liquid spilled all over the floor, Patel said Brown lit a fire.

"He apparently had something that started the fire and t-shirts start burning over here," Patel said pointing at a burnt shelf.

Police said moments before officers arrived, Brown was struck by a bullet. Somehow, the clerks survived the firefight unscathed.

"I hope (Brown) learned a lesson," Patel said. "My (clerks) are still armed and I want people to know that more and more of these incidents are happening. And if more and more robberies are going to happen, more and more store owners are going to take this in their hands."

Patel said the two clerks are CHL carriers and he encourages all his employees to arm themselves.

"Forget about the things that can be replaced," Patel said. "But life? You can't replace life and people are going to protect their life."

Charles Brown is charged with impersonating a police officer and aggravated robbery with a deadly weapon.

He's currently in the Harris County Jail with no bond.